本文主要是介绍服务端之Node的QQ邮件发送功能、授权码申请流程、邮箱、createTransport、sendMail,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
MENU
- 前言
- 邮箱授权码的申请流程
- Node
- 连续发送邮件失败的原因
前言
1、代码段的主要功能是通过nodemailer模块从一个QQ邮箱发送电子邮件。
2、代码段实现从QQ邮箱1283077926@qq.com
发送一封邮件到2506562048@qq.com
,邮件主题为“微信公众号推广”,正文为“亲爱的2506562048,您好!邀请您关注"智码帮"微信公众号。”。
3、在使用此代码时,注意要将授权码pass替换为实际的授权码,并确保发送者邮箱的SMTP服务已开启。
邮箱授权码的申请流程
第一步
打开网页版QQ邮箱
第二步
使用对应QQ号扫码登录邮箱
第三步
点击账号与安全
第四步
点击安全设置
第五步
点击生成授权码
第六步
账号验证
第七步
至此授权码获取成功。
需要注意第五步,如果是第一次,那么需要加一个绑定的过程,生成授权码
的按钮处于不可点击状态。
Node
代码
const nodemailer = require('../../nodeModules/node_modules/nodemailer');
const user = '1283077926@qq.com';init();function init() {// 创建一个邮件传输器const transmitter = nodemailer.createTransport({service: 'qq',auth: {// 发送者的QQ邮箱user,// QQ邮箱的授权码,不是QQ邮箱登录密码pass: 'xpqrsnnlgxqugffg'}});// 邮件信息let mailOptions = {// 发送者邮箱from: user,// 接收者邮箱to: `2506562048@qq.com`,// 邮件主题subject: '微信公众号推广',// 邮件内容(纯文本)text: '亲爱的2506562048,您好!邀请您关注"智码帮"微信公众号。'};// 发送邮件transmitter.sendMail(mailOptions, (error, info) => {if (error) {console.log('发送失败: ', error);} else {console.log('发送成功:', info);}});
}
解析
引入nodemailer模块
代码行引入nodemailer模块。nodemailer是一个用于在Node环境中发送邮件的模块。这里使用require函数从指定路径加载模块。
定义发送者邮箱
代码行定义一个常量user,保存发送邮件的QQ邮箱地址。
初始化函数init
代码行调用init函数,开始执行邮件发送的整个流程。
函数init的实现
1、createTransport
方法用于创建一个邮件传输器transmitter,它包含邮件的发送方式和授权信息。
2、service: 'qq'
指定使用QQ邮箱服务。
3、auth
对象包含授权信息。
4、user
发送邮件的QQ邮箱地址。
5、pass
QQ邮箱的授权码,授权码在QQ邮箱的设置中生成,而不是QQ邮箱的登录密码。这个授权码允许第三方应用(如,nodemailer)使用QQ邮箱来发送邮件。
mailOptions定义邮件信息
1、定义邮件的具体信息。
2、from
邮件发送者的邮箱地址。
3、to
收件人的邮箱地址,这里设置为2506562048@qq.com
。
4、subject
邮件的主题,设为"微信公众号推广"。
5、text
邮件的正文内容,是纯文本格式,内容为"亲爱的2506562048,您好!邀请您关注"智码帮"微信公众号。"
发送邮件
sendMail方法用于发送邮件,它接受两个参数。
mailOptions
包含邮件信息的对象。
一个回调函数用于处理发送邮件后的结果。
如果发送失败,会打印出错误信息error。
如果发送成功,会打印出发送成功的信息info,其中包含邮件发送的详细信息。
连续发送邮件失败的原因
邮箱服务器限制
邮箱服务器(如,QQ邮箱)通常会对短时间内发送大量邮件的账户进行限制,以防止垃圾邮件。这种限制可能包括发送频率的限制和单日发送邮件数量的限制。
错误处理机制
代码中的错误处理部分可能导致发送失败时重复发送同一个邮件,触发邮箱的反垃圾邮件机制。每次发生错误时,立即再次尝试发送邮件,这可能让服务器认为这是异常行为。
邮箱授权码问题
QQ邮箱的授权码需要正确设置和保持有效。如果发送过程中授权码被更改或失效,后续邮件将无法发送。
这篇关于服务端之Node的QQ邮件发送功能、授权码申请流程、邮箱、createTransport、sendMail的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!