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》這本書還不錯,就是有些地方代碼有問題(寫錯),其他還是不錯的。