使用nodemailer发送邮件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用nodemailer发送邮件相关的知识,希望对你有一定的参考价值。

开发网站的时候经常会遇到发送验证邮件的问题,今天介绍一种node平台上功能强大的module——nodemailer

官方网址:http://nodemailer.com/nodemailer-0-7-deprecated/

nodemailer目前有三个版本,分别是0.7.X,1.X和2.X

三个版本中最大的区别在于创建连接池,其中2.X变化别叫大,支持第三方发送邮件动态的accessKeyId

如果我们使用自己的邮箱的话,0.7.x版本就足够,本次的demo就是使用的该版本,如果有更多的需求请查看官方网站

安装:  npm install [email protected] --save

安装好之后,我们就来看看如何发送邮件,在发送邮件之前一定要保证邮箱已经开通了SMTP服务。

开启方式: 设置=》账户=》开启(按照说明开启即可),这时候会得到一个密码,当你使用SMTP服务就需要使用该密码进行登录。

 1 var nodemailer = require("nodemailer");
 2 
 3 // 1. 开启一个smtp连接
 4 var smtpTransporter = nodemailer.createTransport("SMTP",{
 5     host: "smtp.qq.com", // 主机
 6     secureConnection: true, // 使用 SSL加密
 7     port: 465, // SMTP 端口
 8     auth: {
 9         user: "[email protected]", // 账号
10         pass: "pass" // 密码
11     }
12 });
13 
14 //要发送内容
15 var mailoptions = {
16     from: "[email protected]",
17     to: "[email protected]",
18     subject: "i love u",  //标题
19     html: "<h1>hello dear</h1>"  //邮件内容
20 };
21 
22 // 2. 发送邮件
23 smtpTransporter.sendMail(mailoptions,function(err,info){
24     if(err){
25         console.log(err);
26     }else{
27         console.log(info.response);
28     }
29     //如果不在发送可以直接关闭,如果还需要发送其他邮件,那么就不要关闭连接池,直接发送
30     smtpTransporter.close();
31 });

如果得到501错误,可能是未将该用户设置该服务。开启后的服务如下图。

技术分享

在配置邮件内容的时候,收件人可以是多个,中间用逗号隔开,当收件人是一个数组的时候,我们使用  Array.toString()即可解析为逗号分隔。

 

以上是关于使用nodemailer发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

Nodejs 发送邮件 nodemailer

无法使用 nodemailer 从我想要的域发送电子邮件

发送电子邮件后Nodemailer非常慢

使用Nodejs的Nodemailer通过163信箱发送邮件例程

工具Node.js邮件发送组件- Nodemailer 1.0发布

Node.js使用Nodemailer发送邮件