文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

前端工程师如何使用Nodejs自动发送邮件?

2024-12-03 00:36

关注

实现方案

实现自动发送邮件笔者采用了基于Nodejs生态的nodemailer, 它可以轻松的帮我们发送电子邮件, 官网地址: nodemailer.

 

 

之所以选择nodemailer是因为它提供了非常灵活的自定义配置和安全保障, 比如:

还有很多特点笔者就不一一介绍了. 接下来我们来看一个笔者简化并翻译的官网案例:

  1. "use strict";  
  2. const nodemailer = require("nodemailer");  
  3.   
  4. // 使用async..await 创建执行函数  
  5. async function main() {  
  6.   // 如果你没有一个真实邮箱的话可以使用该方法创建一个测试邮箱  
  7.   let testAccount = await nodemailer.createTestAccount();  
  8.   
  9.   // 创建Nodemailer传输器 SMTP 或者 其他 运输机制  
  10.   let transporter = nodemailer.createTransport({  
  11.     host: "smtp.ethereal.email", // 第三方邮箱的主机地址  
  12.     port: 587,  
  13.     secure: false, // true for 465, false for other ports  
  14.     auth: {  
  15.       user: testAccount.user, // 发送方邮箱的账号  
  16.       pass: testAccount.pass, // 邮箱授权密码  
  17.     },  
  18.   });  
  19.   
  20.   // 定义transport对象并发送邮件  
  21.   let info = await transporter.sendMail({  
  22.     from'"Dooring  " ', // 发送方邮箱的账号  
  23.     to"bar@example.com, baz@example.com", // 邮箱接受者的账号  
  24.     subject: "Hello Dooring", // Subject line  
  25.     text: "H5-Dooring?", // 文本内容  
  26.     html: "欢迎注册h5.dooring.cn, 您的邮箱验证码是:${emailCode}", // html 内容, 如果设置了html内容, 将忽略text内容  
  27.   });  
  28. }  
  29.   
  30. main().catch(console.error);  

以上代码是发送带有纯文本和HTML正文的电子邮件的完整示例. 笔者在代码上做了详细的翻译, 我们可以总结出要想发送邮件, 我们需要如下3个步骤:

宏观的使用流程我们知道了, 接下来我们落实到每一个技术功能点来实现.我们需要关注如下几个核心点:

解答了以上3个问题, 我们就能灵活的使用Nodemailer发送自定义邮件了.

如何设置host, port, secure

这里笔者拿网易邮箱来举例. 比如我们想用我们自己的网易邮箱给用户发送邮件, 我们需要先注册一个用于发送邮件的网易邮箱, 比如dooring2021@163.com. 由于我们采用SMTP传输器 , 所以在邮箱主页我们找到如下选项并设置:

 


在该页面下方我们可以找到对应的host, 如下:

 

 

关于port和secure, 我们采用默认配置即可, 设置secure为true,表示端口默认使用465. 详细配置如下:

 

 

如何设置auth

auth我们在上一步的操作中已经涉及到了, 我们在开启IMAP/SMTP服务时会提示保存邮箱授权码, 这里的授权码就是auth.pass的值, auth.user表示当前授权的邮箱.

如何设置Message

消息配置是我们邮箱服务比较重要的部分, 官方提供了如下几个配置说明:

 

 

这里笔者给大家详细介绍一下:

熟悉了以上配置之后我们基本可以配置满足80%场景的邮件发送需求了. 这里我们来看一个设置Message的简单案例:

  1. await transporter.sendMail({  
  2.   from'"v6.dooring" ', // sender address  
  3.   to'xujiang156@qq.com', // list of receivers  
  4.   subject: 'welcome to use dooring', // Subject line  
  5.   text: 'Hello world?', // plain text body  
  6.   html: `欢迎注册v6.dooring, 您的邮箱验证码是:${emailCode}`, // html body  
  7. })  

 

该案例是使用dooring邮箱给一个普通用户发送邮箱验证码的场景, 是不是很熟悉呢? 这个场景目前被应用在很多登录注册相关的场景中. 接下来看看实际的效果:

 

 

扩展

我们利用Nodemailer可以开发很多有意思的产品, 比如: - 在线邮箱客户端 - 定制邮箱模版 - 邮箱验证中枢系统 - 邮箱群发助手

等等. 关于第二个应用场景, 目前开源有很多漂亮的邮箱模版, 比如 - Foundation for Emails - emailframe http://emailframe.work - MJML https://mjml.io

 

 

最后

目前笔者也在持续更新H5编辑器 H5-Dooring, 以及可视化大屏编辑器V6.Dooring,近期更新如下:

 

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯