如何使用NodeJS发送邮件
对于登录注册或者一些监控、数据处理的定时任务,可能需要发送邮件的能力。
今天分享一下使用node server发送邮件的流程。
发送邮件的过程是,你的客户端给邮件服务器发信息,然后邮件服务器发给目标邮件服务器,目标邮件服务器再通知到客户端,目标用户就收到了。
如果我们使用网易客户端可以直接用账号密码登录自己的邮箱。使用node server发邮件,相当于第三方客户端。
第三方客户端指的就是除了网易自己的客户端外的其他客户端。
发邮件流程变成了
这里有个问题,使用网易客户端可以直接通过账号密码登录邮箱,第三方客户端使用账号密码登录肯定不安全,因此网易163邮箱提供了授权码,第三方客户端可以通过授权码以用户身份访问邮箱服务器。由于授权码的权限可以控制,比如可以关闭服务,第三方客户端就无法使用授权码登录了,因此授权码比较安全。
node server发送邮件时候就是一个第三方客户端。
使用nodejs发送邮件的操作流程是:
- 从163邮箱获取授权码
- 安装nodemailer
- 发送邮件
【前端面试刷题网站:,收集大厂面试真题,相关知识点详细解析。】
接下来详细介绍上述过程。
获取授权码
这里以163邮箱为例
登录邮箱,点击设置,选择POP3/SMTP/IMAP选项
选择开启服务
发送短信验证
获取到授权码,记录下来
要注意,授权码只显示一次,因此弹窗时候要记录下来。
获取到授权码后,就可以用node发送邮件了。
nodemailer是一个node库,提供发邮件的功能,使用nodemailer发送邮件的代码非常简单:
使用nodemailer发送邮件
import nodemailer from nodemailer; const transporter = nodemailer.createTransport({ service: 163, // 邮箱 secure: true, // 安全的发送模式 auth:{ user: lingtiku@163.com, // 发件人邮箱 pass: XXXXXXXXXXX // 授权码 } }); transporter.sendMail( { // 发件人邮箱 from: lingtiku@163.com, // 邮件标题 subject: 灵题库 验证码, // 目标邮箱 to: target@xxx.com, // 邮件内容 text: `您的验证码是:1234,如非本人操作,请忽略` }, (err, data) => { if (err) { console.error(err); } else{ console.log(data); } } );
上一篇:
Java基础知识总结(2021版)
下一篇:
面试题总结:线程的周期