node.js发送电子邮件带附件代码实例

发布时间:2020-01-02编辑:脚本学堂
node.js发送邮件的实现代码,node.js发送带附件的邮件实例,安装node第三方用户发送email的module实现邮件发送,需要的朋友参考下。

使用node.js发送电子邮件,可以发送附件,暂时研究的不是很透彻,有待以后补充吧。

首先,安装node的第三方用户发送email的module 。
 

npm install nodemailer

安装完成后,注意,应该确保用来发送邮件的邮箱地址是打开只是IMAP 、SMTP功能的,这样才可以发送邮件成功。

代码:
 

复制代码 代码示例:
var mail = require(‘nodemailer‘);  //包含发送邮件所需module
mail.SMTP = {
use_authentication: true, //如果我们使用QQ等邮箱,这个必须写且为true
host: ‘smtp.qq.com‘,   //定义用来发送邮件的邮箱服务器,一般是QQ这些的
port:25,//定义服务器端口,一般是25   ,如果是使用SSL端口一般为465,或者587
ssl:false, //默认不适用SSL,可以省略不写
user: ‘wahyd4@qq.com‘,   //邮箱用户名
pass:‘*****‘   //输入邮箱密码
}
mail.send_mail(
{
sender:‘wahyd4@qq.com‘,   //发送邮件的地址
to:‘wahyd4@gmail.com‘, //发给谁
subject:‘随便把‘,   //主题
body:‘Hello,这个邮件来自node.js‘
},
//回调函数,用户判断发送是否成功,如果失败,输出失败原因。
function(error,success){
if(!error){
console.log(‘message success‘);
}else{
console.log(‘failed‘+error);
}
}
);
 

这里没有使用SSL进行发送,而且发送的是纯文本,也可以发送html,如果发送html则在send_mail函数里面加上:
 

html: ‘<p> 你好。。邮件来自node.js</p>‘,

如果使用SSL进行发送我们则需要将mail.SMTP改为:
 

复制代码 代码示例:
mail.SMTP = {
use_authentication: true,  //如果我们使用QQ等邮箱,这个必须写且为true
host: ‘smtp.qq.com‘,   //定义用来发送邮件的邮箱服务器,一般是QQ这些的
port:465,//定义服务器端口,一般是25  ,如果是使用SSL端口一般为465
ssl:true, //默认不适用SSL,可以省略不写
user: ‘wahyd4@qq.com‘,   //邮箱用户名
pass:‘*****‘   //输入邮箱密码
}
 

运行程序,测试是否成功。

错误 :503 ERROR,need EHLO and AUTH first。就是因为没有添加use_authentication = true的缘故。加上之后,搞定。
发送附件的话。
首先,使用:
 

var fs = require(‘fs‘);//导入文件系统相关的包

然后,将文件读入内存,并将其发送。
 

复制代码 代码示例:
//读入文件
var img = fs.readFileSync(__dirname+"/cat.jpg");
 
var attachment = [{
'filename': "cat.jpg",   //这里只是给附件取名称,而不是导入文件内容
'contents': img //导入文件
}]//定义我们需要发送的附件

接下来,需要在send_mail函数中加入发送附件即可。
 

复制代码 代码示例:
mail.send_mail(
{
sender:‘wahyd4@qq.com‘,   //发送邮件的地址
to:‘wahyd4@gmail.com‘, //发给谁
subject:‘测试发送文件‘,   //主题
attachments: attachment, //添加附件
body:‘Hello,这个邮件来自node.js,包含附件哦,亲!‘
 
},

Nodemailer链接地址:http://www.nodemailer.org/