需求:通过nodejs发送邮件
一般都是用nodemailer这个模块。目前有0.7和1.0两个版本,网上的很多教程和代码,大都是按照0.7写的,自己做的时候需要注意看README.md
支持的services:https://github.com/andris9/nodemailer-wellknown#supported-services
官网:https://www.npmjs.com/package/nodemailer
自己的过程:
在网上找的例子是0.7版本的代码,提示需要downgrade to 0.7,感觉需要找1.0版本的代码
网上的教程一般会有Gmail,国内登Gmail不太稳定,而且Gmail登录验证比较严格,README.md中简单地例子,根本登不上去。
换到163,看到网上有人把services设为'163qiye',感觉163应该可以,结果不支持163.
换到qq,看到supported-services中又QQ,结果返回'454 Authentication failed, please open smtp flag first! ',需要把在QQ邮箱的设置里面,找到账户-》POP3/IMAP/SMTP选择开启POP3/SMTP服务,由于需要设置独立密码,我的没有二代身份证验证,所以不能开启此服务。qq邮箱也用不了
换到icloud,services support iCloud,终于可以发送邮件了。
别人做起来那么简单的事情,对我来说,确是很难。
var transporter = nodemailer.createTransport({ service: 'iCloud', auth: { user: 'icloud mail', pass: 'pwd' } }); var mailOptions = { from: 'icloud name', // sender address to: 'icloud name', // list of receivers subject: 'Hello ✔', // Subject line text: 'Hello world ✔', // plaintext body html: '<b>Hello world ✔</b>' // html body }; transporter.sendMail(mailOptions, function(error, info){ if(error){ return console.log(error); } console.log('Message sent: ' + info.response); });