2010-11-09 140 views
0

我正在为我的班级制作一张表格,用于记录他们每天做了什么。如何使用JavaScript将文件附加到电子邮件?

在本周结束时,人们需要将文件通过电子邮件发送给他们的老师。

有没有办法使用JavaScript来自动附加当前文件到电子邮件?

谢谢。

编辑:哦,这也必须与IE7和Outlook 2007一起工作。

回答

3

有没有办法使用JavaScript来自动附加当前文件到电子邮件?

不,没有。 JavaScript完全在浏览器中运行,并且无法访问本地文件。可以使用mailto:链接启动默认电子邮件客户端,并且可以预先设置主题和邮件正文。但除此之外没有什么。

+0

+1!预设主题和正文不适用于跨浏览器。 – jwueller 2010-11-09 19:40:43

+0

哈哈,设想一个电子邮件被普通人在网上冲浪时不被注意的世界。 spam² – Harmen 2010-11-09 19:43:24

1

实际上,如果您希望它能像MS所描述的那样使用MS技术,您可以使用ActiveX与Outlook进行交互。看到下面的问题。

Problem creating an email with an attachment in Javascript

+0

+1 Nice!它是专有技术,**不适用于大多数情况下的日常公共使用,但它可能适用于OP。 (编辑:我退出了投票。好吧,虚拟+1然后:) – 2010-11-09 19:44:41

+0

@皮卡:我会为你做;) – jwueller 2010-11-09 20:18:15

+0

@elusive谢谢! :) – 2010-11-09 20:18:55

0

试试这个code.First你必须建立在谷歌云端控制台应用程序,并从library.Get启用Gmail API您app.For的是点击凭证和授权重定向的地方凭据URIs保留此链接https://developers.google.com/oauthplayground并保存它。在另一个选项卡中打开此链接https://developers.google.com/oauthplayground/单击右侧的设置符号。然后在复选框打勾(即使用您自己的OAuth凭据)之后您必须给你的clientId和clientSecret 。同时在左侧有一个带有占位符的文本框,如输入您自己的范围,在此保留此链接https://mail.google.com/并点击授权API,然后点击Exchange授权代码以获取令牌,然后您无线将得到您的refreshToken和accessToken保持这两个在您的code.Hope thsi帮助你..

const nodemailer=require('nodemailer'); 
const xoauth2=require('xoauth2'); 
var fs=require('fs'); 
var transporter=nodemailer.createTransport({ 
service:'gmail', 
auth:{ 
    type: 'OAuth2', 
    user:'Sender Mail', 
clientId:'Your_clientId',//get from Google Cloud Console 
clientSecret:'Your clientSecret',//get from Google Cloud Console 
refreshToken:'Your refreshToken',//get from https://developers.google.com/oauthplayground 
accessToken:'Tor accessToken'//get from https://developers.google.com/oauthplayground 
}, 
}); 
fs.readFile("filePath",function(err,data){ 
var mailOptions={ 
from:' <Sender mail>', 
to:'receiver mail', 
subject:'Sample mail', 
text:'Hello!!!!!!!!!!!!!', 
attachments:[ 
{ 
    'filename':'filename.extension',//metion the filename with extension 
    'content': data, 
    'contentType':'application/type'//type indicates file type like pdf,jpg,... 
}] 
} 
transporter.sendMail(mailOptions,function(err,res){ 
if(err){ 
    console.log('Error'); 
} 
else{ 
console.log('Email Sent'); 
} 
}) 
});