前言
电子邮件的使用十分广泛,比如在用户注册、修改密码时的验证,在Node.js中我们可以通过Nodemailer实现发邮件的功能,这篇文章仅介绍其简单的使用,通过163邮箱的smtp服务实现发邮件。
环境
操作系统:Ubuntu 16.04
Node版本:v7.0.0
Nodemailer
Github: https://github.com/nodemailer/nodemailer
安装 Nodemailer
npm install nodemailer
基本使用
使用之前,先到163邮箱设置的POP3/SMTP/IMAP,打开SMTP服务。
var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport({
host: 'smtp.163.com',
secureConnection: true, // use SSL
port: 465,
auth: {
user: 'yourUsername@163.com', // 邮箱地址
pass: 'yourPassword' // 密码(163邮箱的话是设置smtp时的授权码)
}
});
var mailOptions = {
from: 'yourUsername@163.com ', // 发件人邮箱地址,要和上面一致,否则会报错
to: '****@***.com', // 收件人列表,多个收件人用“,”分隔
subject: 'A Simple Email', // 主题
text: 'Hello world', // plain text格式
html: 'Hello world' // html格式
};
transporter.sendMail(mailOptions, function(err, info) {
if (err) {
console.log(err);
} else {
console.log('Message sent: ' + info.response);
}
});
如果正常发送的话,我们在控制台会看到类似这样的一条回馈信息
Message sent: 250 Mail OK queued as smtp10,DsCowAA3DJoJyiJYiiXnBg–.2092S2 1478674954
部分错误
Error: Invalid login: 535 Error: authentication failed
认证失败,可能是账号密码错误
Error: Mail command failed: 553 Mail from must equal authorized user
发件人和认证的邮箱地址不一致