nodemailer是什么
nodemailer是一个nodejs的邮件服务模块
如何用nodemailer发邮件
1.先安装nodemailer
npm i --save nodemailer
2.使用nodemailer
var nodemailer = require('nodemailer');
var mailTransport = nodemailer.createTransport({
host: 'smtp.163.com',
port: 25,
auth: {
user: 'user_name@163.com',
pass: 'xxxxxx'
}
});
mailTransport.sendMail({
from: 'user_name@163.com', //你的邮箱
to: 'xxxxx', //发给谁
subject: '标题',
text: '内容'
}, function (err) {
if (err) {
console.error('Unable to send email: ' + err);
}
});
### 坑在哪里
1.如果是163邮箱的话,auth中的pass密码是163的授权码,而不是登录密码(其他邮箱没试过,应该也是这样的),不然会报错。
2.auth中的user和下面发邮件时的from需要一致,不然也会报错。
3.纠结我大半天的东西,我是看的《node与express4开发》这本书,书中在讲到nodemailer发送邮件时是这样写的:
var mailTransport = nodemailer.createTransport('SMTP', {
service: 'Gmail',
auth: {
user: credentials.gmail.user,
pass: credentials.gmail.password
}
});
而官方的例子是(后来看了一下官方示例):
let transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'gmail.user@gmail.com',
pass: 'yourpass'
}
});
看到区别了吧,那个'SMTP',可能是由于模块更新导致的,但是真的是坑到爆了。 另外,《node与express4》这本书还不错,就是有些地方代码有问题(写错),其他还是不错的。