使用nodemailer发送邮件一直困惑了我好几天,百度谷歌都没有找到的几个问题,方便大家排查。
我使用的是0.7.1版本,其他的版本好像报错,就没用。
错误信息:Mail from command failed – 501 mail from address must be same asauthorization user
经检查问题出现在第12行代码,这里必须要填写发件人的邮箱地址,因为我以为第7行已填写过邮箱地址,错以为第12行只要随便写个名称,所以一直报错。
如果需要加上名称用<>把邮箱包住,如:carter<carter@mingbomedia.com>
以下为可运行代码:
1 var nodemailer = require("nodemailer"); 2 var transport = nodemailer.createTransport('SMTP', { 3 host: "smtp.tq52.com", 4 secureConnection: true, 5 port: 465, 6 auth: { 7 user: "lele@tq52.com", // 账号 8 pass: "********" // 密码 9 }10 });11 var data = {12 from: 'lele@tq52.com',13 to: '308012546@qq.com',14 subject: 'Hello world',15 text: 'Hello world, I am a test mail!',16 html: '<b>Hello world, I am a test mail!</b>'17 };18 transport.sendMail(data, function(err, res){19 if (err) {20 console.log(err);21 } else {22 console.log('Message sent: ' + res.message);23 }24 transport.close(); // 如果没用,关闭连接池25 });
如果采用如下service的方式去写,修改service的文件路径在node_modules/nodermailer/lib/wellknown.js。
1 var transport = nodemailer.createTransport('SMTP', {2 service: 'qq', //use well known service3 auth: {4 user: 'hankewins@qq.com',5 pass: '123456'6 }7 });
只有流过血的手指才能弹出世间的绝唱。