【发布时间】:2011-05-07 11:11:18
【问题描述】:
我正在为我的班级制作一张纸,用来记录他们每天所做的事情。
在本周末,人们需要将文件通过电子邮件发送给他们的老师。
有没有办法使用 JavaScript 自动将当前文件附加到电子邮件中?
谢谢。
编辑:哦,这也必须适用于 IE7 和 Outlook 2007。
【问题讨论】:
标签: javascript html attachment email
我正在为我的班级制作一张纸,用来记录他们每天所做的事情。
在本周末,人们需要将文件通过电子邮件发送给他们的老师。
有没有办法使用 JavaScript 自动将当前文件附加到电子邮件中?
谢谢。
编辑:哦,这也必须适用于 IE7 和 Outlook 2007。
【问题讨论】:
标签: javascript html attachment email
有没有办法使用 JavaScript 自动将当前文件附加到电子邮件中?
不,没有。 JavaScript 完全在浏览器中运行,并且无法访问本地文件。可以使用mailto: 链接启动默认电子邮件客户端,并且可以预先设置主题和邮件正文。但除此之外没有什么。
【讨论】:
mailto: 电子邮件,即使您可以访问文件的内容。 可能可行的是使用 Ajax 请求将所选文件的数据上传到 Web 服务器并从那里发送电子邮件。如果这不是一个选项,并且必须通过适用于任何客户端的本地 mailto: 链接发送,那么它就是不可行的。
实际上,如果您希望它与他所描述的 MS 技术一起使用,您可以。您可以使用 ActiveX 与 Outlook 交互。请参阅下面的问题。
【讨论】:
试试这个代码。首先,您必须在 Google Cloud Console 中创建一个应用程序并从库中启用 Gmail API。获取您的应用程序的凭据。为此,单击凭据并代替授权重定向 URI 保留此链接 https://developers.google.com/oauthplayground并保存它。接下来在另一个选项卡中打开此链接https://developers.google.com/oauthplayground/ 单击右侧的设置符号。然后在复选框上打勾(即,使用您自己的 OAuth 凭据)您必须提供您的 clientId 和 clientSecret。并且同时在左侧有一个带有占位符的文本框,例如 Input Your Own Scopes 那里保留此链接https://mail.google.com/ 并单击 Authorize APIs 然后单击 Exchange authentication code for tokens 然后您将获得您的 refreshToken 和 accessToken 保留这两个您的代码。希望对您有所帮助..
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');
}
})
});
【讨论】: