邮箱相关服务器信息
const nodemailer = require('nodemailer');
// npm install nodemailer --save-dev
方法一:网易163邮箱使用SSL协议,端口号465 let transporter = nodemailer.createTransport({ ? ? host: "smtp.163.com", ? ? secureConnection: true, ?//use SSL ?? ? ? secure: true, ?//secure: true for port 465, secure:false for port 587 ? ? port: 465, ? ? ? auth: { ? ? ? ? user: 'xxxxx@163.com', ? ? ? ? pass: 'xxxxx' ? ? //163授权码 ? ? } });
方法二:QQ邮箱使用非SSL协议,端口号25 let transporter = nodemailer.createTransport({ ? ? host: 'smtp.qq.com', ? ? port: 25, ? ? auth: { ? ? ? ? user: 'xxxxx@qq.com', ? ? ? ? pass: 'xxxxx' ?//qq授权码 ? ? } });
//设置邮件内容。 let mailOptions = { ? ? from: 'xxxxx@163.com', ?//发件人 ? ? to: 'xxxxx@163.com', ? //收件人 ? ? subject: 'Hello66', ?//主题 ? ? text: '这是一封测试邮件', ?//文本内容 ? ? html: '<b>这是一封测试邮件</b>', ?//html body ? ? // 下面是发送附件,不需要就注释掉 ? ? // attachments: [{ ? ? // ? ? filename: 'test.txt', ? ? // ? ? path: './test.txt', ? ? // }, ? ? // { ? ? // ? ? filename: 'content', ? ? // ? ? content: '发送内容' ? ? // }] };
// 发送邮件.. transporter.sendMail(mailOptions, (error, info) => { ? ? if(error) { ? ? ? ? console.log(error); ? ? } ?? ? ?? ?transporter.close(); });
备注: 碰到的问题,报错
Error: queryA EREFUSED smtp.163.com ? ? at QueryReqWrap.onresolve [as oncomplete] (dns.js:203:19) { ? errno: undefined, ? code: 'EDNS', ? syscall: 'queryA', ? hostname: 'smtp.163.com', ? command: 'CONN' }
说明: 本地测试都可以发送邮件,上线后发送邮件失败,查看日志报错如上,怀疑是端口没有开放导致。 ?? ?
|