转自:https://blog.csdn.net/q36835109/article/details/53067917

注:由于本人使用最新版本的nodemailer不兼容,所以目前使用的是0.7.1版的nodemailer

 

下面展示的是使用QQ邮箱发送邮件的实例,如果你有其它需求,也可以更换成其他邮箱发送,如(163,gmail等)。

 

1.安装nodemailer

npm install nodemailer@0.7.1

 

2.调用

 

[javascript] view plain copy
 
  1. var to = 'XXX@qq.com';        //收件地址  
  2.     var subject = '邮件标题';           //发送的标题  
  3.     var text = '文本内容';              //文本  
  4.     var html = '<h1>邮件内容</h1>';   //发送的内容  
  5.   
  6.     var transporter = nodemailer.createTransport("SMTP", {  
  7.         host: "smtp.qq.com",        // 主机  
  8.         secureConnection : true,    // 使用 SSL  
  9.         port: 465,                  // SMTP 端口  
  10.         auth: {  
  11.             user: 'XXX@qq.com', //邮箱登录账号  
  12.             pass:'XXXXX' //使用QQ邮箱登录密码是不正确的,必须使用QQ邮箱里的授权码,这个请注意,底部有说明。  
  13.         }  
  14.     });  
  15.   
  16.     var emailOptions = {  
  17.         from : 'XXX <XXXXX@qq.com>',  
  18.         to : to,  
  19.         subject : subject,  
  20.         text : text,  
  21.         html : html  
  22.     }  
  23.   
  24.     transporter.sendMail(emailOptions, function(err, info) {  
  25.         if(err){  
  26.             return console.log(err);  
  27.         }else{  
  28.             console.log('Message sent: ' + info.message);  
  29.         }  
  30.         transporter.close(); // 如果没用,关闭连接池  
  31.     });  


3.注意事项:

 

1.首先登录到QQ邮箱,点击左上角设置->账户,找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务开启smtp服务,如下图显示

开启之后,点击‘生成授权码’(* 这个授权码是用来登录发送邮件的),如下图显示

获取完之后,如下图显示

 

2.提示535错误,如下图显示

原因:smtp服务器验证不通过

解决方案:密码要用授权码当密码

 

3.Error: 101057795,,如下图显示:

原因:端口不正确

解决方案:修改端口(578或25或465等)试试

 

4.Error: Greeting never received,如下图显示:

原因:没有使用ssl

解决方案:添加secureConnection:true

 

以上是本人在使用的时候遇到的问题,如果您们还遇到其他问题,可以评论把问题和解决方案写下,方便大家以后遇到相同问题时可以查看。。

posted on 2017-12-20 17:24  Sharpest  阅读(650)  评论(0编辑  收藏  举报