作者将详细介绍自动发送邮件的实现方案,并用一个实际案例来指导大家掌握使用nodejs自动发送邮件。最后会介绍一些实际的应用场景,加深对方案的理解,达到学习的目的。使用目的。自动发送邮件的实现方案笔者使用的是基于Nodejs生态的nodemailer,可以很方便的帮助我们发送邮件。官网地址:nodemailer。之所以选择nodemailer,是因为它提供了非常灵活的自定义配置和安全保障,例如:单一模块,零依赖,代码审查方便,无死角Unicode支持使用任何字符,包括表情,邮件内容都支持普通文本和自定义html,支持自定义附件,支持安全可靠SSL/STARTTLS电子邮件发送支持自定义插件处理电子邮件的功能还有很多。我就不一一介绍了。接下来看一个官网我精简翻译的案例:"usestrict";constnodemailer=require("nodemailer");//使用async。.awaitcreatesexecutionfunctionasyncfunctionmain(){//如果没有真实的邮箱,可以使用此方法创建测试邮箱lettestAccount=awaitnodemailer.createTestAccount();//创建NodemailertransporterSMTP或其他传输机制lettransporter=nodemailer.createTransport({host:"smtp.ethereal.email",//第三方邮箱主机地址port:587,secure:false,//truefor465,falseforotherportsauth:{user:testAccount.user,//发件人邮箱的账号pass:testAccount.pass,//邮箱授权密码},});//定义传输对象,发送邮件letinfo=awaittransporter.sendMail({from:'"Dooring"',//发件人邮箱Accountto:"bar@example.com,baz@example.com",//收件人邮箱subject:"HelloDooring",//Subjectlinetext:"H5-Dooring?",//textcontenthtml:"欢迎注册h5.dooring.cn,您的邮箱验证码为:${emailCode}",//html内容,如果设置html内容,文本内容会被忽略});}main().catch(console.error);上面的代码是一个完整的发送纯文本和HTML文本邮件的例子,作者在上面做了详细的翻译代码,我们可以得出结论,为了发送邮件,我们需要以下三个步骤:创建一个Nodemailer传输SMTP或其他传输机制设置Message选项(发送什么消息给谁)使用之前创建的sendMail()方法transport传递消息我们知道了对象的宏观使用流程,接下来我们实现各个技术功能点来实现,需要重点关注以下几个核心点:如何设置host如何设置auth如何配置Message选项回答完以上三个问题后,我们就可以灵活使用Nodemailer发送自定义邮件了。h怎么设置主机、端口、安全这里我以网易邮箱为例。比如我们要使用自己的网易邮箱给用户发送邮件,就需要先注册一个发送邮件的服务器。网易邮箱,如dooring2021@163.com。由于我们使用的是SMTP发送器,所以我们在邮箱首页找到如下选项并进行设置:在这个页面的最下方,我们可以找到对应的host,如下:关于port和secure,我们使用默认配置即可,设置secure为true,表示端口默认使用465。详细配置如下:如何设置authauth我们在上一步已经涉及到,当我们开启IMAP/SMTP服务时,会提示保存邮件授权码,这里的授权密码就是auth的值.pass,auth.user代表当前授权的邮箱。如何设置Message配置是我们邮箱服务的重要组成部分。官方提供了如下配置说明:这里我给大家详细介绍一下:fromSendsender'semailaddress所有电子邮件地址都可以是普通的“sender@server.com”或格式化为“sendername”sender@server.com“以逗号分隔的列表或收件人电子邮件地址的排列cc逗号分隔列表或收件人电子邮件地址数组将出现在'cc'字段bcc逗号分隔列表或将出现在'bcc:'字段中的收件人电子邮件地址数组文本附件的内容将被忽略。熟悉以上配置后,我们基本可以配置满足80%场景的邮件发送需求。这里我们看一个简单的设置Message的例子:awaittransporter.sendMail({from:'"v6.dooring"',//senderaddressto:'xujiang156@qq.com',//listofreceiverssubject:'welcomedooring',//Subjectlinetext:'Helloworld?',//plaintextbodyhtml:`欢迎注册v6.dooring,您的邮箱验证码为:${emailCode}`,//htmlbody})这种情况就是用dooringemail给一个普通用户发邮件验证你熟悉代码场景吗?这个场景目前在很多登录注册相关的场景中都有使用。我们来看看实际效果:扩展我们可以使用Nodemailer开发很多有趣的产品,比如:-在线邮件客户端-自定义邮件模板-邮件验证中心系统-邮件群发助手等。关于第二种应用场景,有很多漂亮的邮件模板开源,比如-FoundationforEmails-emailframehttp://emailframe.work-MJMLhttps://mjml.io最后,作者也在持续更新H5编辑器H5-Dooring,还有作为可视化大屏编辑器V6.Dooring,近期更新如下:修复图片库选择bug增加省市级联组件增加excel数据批量导入功能增加表单自定义验证音频组件增加自动播放控制,循环播放等配置项添加水平方向滑动组件