记录一下实践nodemailer
发送验证码的过程;
首先参考官方文档,了解nodemailer
;
这里我参考的是这篇文章。内容很详细,就不怎么具体
核心代码:
/*** email 邮件模块**/const nodemailer = require('nodemailer');const smtpTransport = require('nodemailer-smtp-transport');const config = require('../config')const transporter = nodemailer.createTransport(smtpTransport({host: '',//代理商,这里写的qq的secure: true,port: 465,auth: {user: config.email.account,//授权邮箱pass: config.email.password 这里密码不是qq密码,是你设置的smtp授权码}}));let clientIsValid = false;const verifyClient = () => {transporter.verify((error, success) => {if (error) {clientIsValid = false;console.warn('邮件客户端初始化连接失败,将在一小时后重试');setTimeout(verifyClient, 1000 * 60 * 60);} else {clientIsValid = true;console.log('邮件客户端初始化连接成功,随时可发送邮件');}});};verifyClient();const sendMail = mailOptions => {if (!clientIsValid) {console.warn('由于未初始化成功,邮件客户端发送被拒绝');return false;}mailOptions.from = '"ShineTomorrow" <youremail@>'transporter.sendMail(mailOptions, (error, info) => {if (error) return console.warn('邮件发送失败', error);console.log('邮件发送成功', info.messageId, info.response);});};exports.sendMail = sendMail;
介绍如何使用的了,记录一下遇到的问题:
1.首先应该给授权邮箱开通SMTP
服务,百度如何开通。这里有个qq开通的教程;
2.将运营商提供的授权码保存下来;
3.要注意mailOptions中的email要与授权邮箱一致,否则会报501
error。