77百科网
当前位置: 首页 生活百科

nodejs写后端接口(前端工程师如何使用nodejs自动发送邮件)

时间:2023-07-17 作者: 小编 阅读量: 1 栏目名: 生活百科

',//plaintextbodyhtml:`欢迎注册v6.dooring,您的邮箱验证码是:<b>${emailCode}</b>`,//htmlbody})该案例是使用dooring邮箱给一个普通用户发送邮箱验证码的场景,是不是很熟悉呢?搜“趣谈前端”,发现更多有趣的H5游戏,webpack,node,gulp,css3,javascript,nodeJS,canvas数据可视化等前端知识和实战.

之前用nodeJS做了很多服务端模块, 最近抽空复盘一下, 接下来笔者将介绍如何使用Nodejs来自动向用户发送邮件.

笔者将详细介绍自动发送邮箱的实现方案, 以及通过一个实际的案例来带大家掌握使用nodejs自动发送邮件, 最后会介绍一些实际的应用场景, 来加深对该方案的理解, 达到学以致用的目的.

实现方案

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

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

  • 具有零依赖关系的单一模块, 代码容易审核,没有死角
  • Unicode支持使用任何字符,包括表情符号
  • 邮件内容既支持普通文本, 还支持自定义html
  • 支持自定义附件
  • 支持安全可靠的SSL/STARTTLS邮件发送
  • 支持自定义插件处理邮件消息

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

"use strict";const nodemailer = require("nodemailer");// 使用async..await 创建执行函数async function main() {// 如果你没有一个真实邮箱的话可以使用该方法创建一个测试邮箱let testAccount = await nodemailer.createTestAccount();// 创建Nodemailer传输器 SMTP 或者 其他 运输机制let transporter = nodemailer.createTransport({host: "smtp.ethereal.email", // 第三方邮箱的主机地址port: 587,secure: false, // true for 465, false for other portsauth: {user: testAccount.user, // 发送方邮箱的账号pass: testAccount.pass, // 邮箱授权密码},});// 定义transport对象并发送邮件let info = await transporter.sendMail({from: '"Dooring" <dooring2021@163.com>', // 发送方邮箱的账号to: "bar@example.com, baz@example.com", // 邮箱接受者的账号subject: "Hello Dooring", // Subject linetext: "H5-Dooring?", // 文本内容html: "欢迎注册h5.dooring.cn, 您的邮箱验证码是:<b>${emailCode}</b>", // html 内容, 如果设置了html内容, 将忽略text内容});}main().catch(console.error);

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

  • 创建Nodemailer传输器 SMTP 或者其他运输机制
  • 设置 Message 选项(将什么消息发送给谁)
  • 使用先前创建的传输器的sendMail()方法传递消息对象

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

  • 如何设置 host
  • 如何设置 auth
  • 如何配置 Message 选项

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

如何设置host, port, secure

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

趣谈前端

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

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

如何设置auth

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

如何设置Message

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

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

  • from 发件人的电子邮件地址。所有电子邮件地址都可以是纯'sender@server.com“或格式化”‘发送者名称’sender@server.com'
  • to 逗号分隔的列表或收件人的电子邮件地址的排列
  • cc 逗号分隔的列表或将显示在“抄送”字段中的收件人电子邮件地址数组
  • bcc 逗号分隔的列表或将显示在“密件抄送:”字段中的收件人电子邮件地址数组
  • subject 电子邮件的主题
  • text 消息的文本内容
  • html 消息的html内容, 如果定义了html, 将忽略text
  • attachments 附件内容

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

await transporter.sendMail({from: '"v6.dooring" <dooring2021@163.com>', // sender addressto: 'xujiang156@qq.com', // list of receiverssubject: 'welcome to use dooring', // Subject linetext: 'Hello world?', // plain text bodyhtml: `欢迎注册v6.dooring, 您的邮箱验证码是:<b>${emailCode}</b>`, // html body})

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

扩展

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

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

最后

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

  • 修复图片库选择bug
  • 添加省市级联组件
  • 添加批量导入 excel 数据的能力
  • 添加表单自定义校验
  • 音频组件添加自动播放控制, 循环播放等配置项
  • 添加横向滑动组件

觉得有用 ?你的支持是我最大的鼓励!搜 “趣谈前端”,发现更多有趣的H5游戏, webpack,node,gulp,css3,javascript,nodeJS,canvas数据可视化等前端知识和实战.

    推荐阅读
  • 惊讶的意思(词语惊讶的意思)

    下面更多详细答案一起来看看吧!惊讶的意思惊讶,是汉语词汇,拼音是jīngyà,意思是觉得很意外,很奇怪,很惊异。可以用作形容词和动词。有惊异、惊奇之意。出自《敦煌变文集·丑女缘起》:纔生三日,进与大王;纔见之,非常惊讶。世间丑陋,生於贫下。

  • 冬青什么时候扦插(冬青扦插时间简述)

    接下来我们就一起去了解一下吧!冬青什么时候扦插冬青的扦插四季都可进行,适宜于春末夏初和夏末秋初进行。插穗长6~8cm,剪去下部叶片,只留1~2叶片并短截,插深1/2,需用沙土为基质,插后搭棚遮荫,经常喷水,保持湿润,约1个月后即可生根。可先从树冠中上部斜剪,取5~10cm长、生长旺盛的侧枝剪除下部小叶,上部叶片全部保留。然后用生根粉处理,剪口向下扦插于苗床内。苗床地宜选择在通风、耐阴之处,亦可遮阳扦插。

  • 数字媒体艺术发展动态(全面赋能数字文化产业发展)

    9月9日,全球首家PODW影像数字化培训中心启用仪式在常熟董浜镇悦庄生态园举行。今年,PODW影像数字化中心将大力协助常熟市图书馆、博物馆、翁同龢纪念馆对历史影像资料的翻牌修复保存,并指导工作人员运用影像数字技术。活动现场,常熟市悦庄数字技术有限公司与常熟市图书馆、博物馆、翁同龢纪念馆共同签署影像数字文化战略合作协议;常熟市影像数字文化孵化基地、常熟市影像数字文化产业培育基地正式揭牌。

  • 蚂蚁花呗可以买什么 蚂蚁花呗都能支付什么

    开通了蚂蚁花呗,虽然额度不是太高,但是也可以一解我这个月光族的燃眉之急。那么问题来了,蚂蚁花呗能买什么呢?水费、电费、煤气费不支持花呗主动付款。电话费和主动缴费可以支持蚂蚁花呗支付,但每个用户每月只能使用花呗一次,最高不超过500元。飞机票、火车票、线下超市、还信用卡、快的打车以及的支付和转账也不支持蚂蚁花呗支付。加入蚂蚁花呗支付的外部商户。

  • 上证指数大涨的历史(3就叫大涨上证指数今天涨幅只能排在119位)

    大盘股今天继续暴动,带动上证指数大涨83.38点,报2763.54点,涨幅3.11%,创2012年12月以来最大单日涨幅。不过,今天上证指数的涨幅和历史上的疯狂相比还是小巫见大巫。Choice数据显示,从1996年12月16日起设置涨跌停板以来,上证指数今天3.11%的涨幅排名第119位。排名第一的是2001年10月23日,当天证监会宣布停止执行国有股减持暂行办法,大盘几乎涨停。

  • 长期腹泻应该注意什么(3个原因揭秘腹泻)

    四磨汤源自宋代《济生方》中“四磨饮”,“四磨”,指四味药物先磨浓汁再和水煎服的方法。由于方中诸药均较坚实、非久煎不能出其性,但煎煮过久又恐芳香气味散逸,而影响治疗效果,故用此法,取其“磨则味全”之意,故称“四磨汤”。

  • 梦见和同事吵架(睡觉梦见与同事吵架的寓意)

    以下内容大家不妨参考一二希望能帮到您!梦见和同事吵架怀孕的人梦见与同事吵架,预示生女,顺利,母子平安。工作的人梦见与同事吵架,预示着你近期会提职增薪。本命年的人梦见与同事吵架,意味着发自内心的改悔,目前运势艰辛,往后有好转机。梦见和亲友吵架,预示会和睦相处,危难时期能得到朋友的帮助。梦见与下属吵架,表示能妥善地处理自己的事务。

  • 没感情的婚姻说说心累的句子(没感情心累的婚姻说说精选)

    两个受过伤的恋人,手拉着手步入婚姻的坟墓。结婚不是从此只有两个人面对面,结婚应该是两个人牵手共同面对这个世界。男人的灵魂现在羼入了一些女人的灵魂。女人分结婚的女人与不结婚的两种,男人分自愿结婚与被迫结婚的两种。一个失败的婚姻,就是一场悲剧;结束一场悲剧,等于开始一场喜剧。婚姻决裂的两大最终起因:相拥却并不相爱。婚姻是需要双方经营的,威胁是没有任何作用的,伤人伤己。

  • 好吃简单的草莓酱怎么做(草莓酱简单做法)

    下面希望有你要的答案,我们一起来看看吧!好吃简单的草莓酱怎么做首先准备好所有的食材:草莓200克,冰糖10克。然后将草莓用盐水清洗干净备用。接着将草莓去蒂切碎,尽量细小。接着开小火用铲子不停搅拌,小心粘锅。然后搅拌至粘稠状态,滴几滴柠檬防腐就可以关火晾凉装罐。