Node使用Nodemailer发送邮件的方法实现


Posted in Javascript onFebruary 24, 2020

电子邮件是—种用电子手段提供信息交换的通信方式,是互联网应用最广的服务。通过网络的电子邮件系统,用户可以以非常低廉的价格(不管发送到哪里,都只需负担网费)、非常快速的方式(几秒钟之内可以发送到世界上任何指定的目的地),与世界上任何一个角落的网络用户联系。

在很多项目中,我们都会遇到邮件注册,邮件反馈等需求。在node中收发电子邮件也非常简单,因为强大的社区有各种各样的包可以供我么直接使用。Nodemailer包就可以帮助我们快速实现发送邮件的功能。

开始

这里使用的是qq邮箱,因为qq邮箱的权限比较好设置一些。

安装模块

cnpm i nodemailer -S

创建-个SMTP客户端配置

//引入模块 nodemailer
 const nodemailer = require('nodemailer')

 // 创建一个SMTP客户端配置
 const config = {
  service: "QQ",
  auth: {
   // 发件人邮箱账号
   user: 'xxxxxx@qq.com',
   //发件人邮箱的授权码 这里可以通过qq邮箱获取 并且不唯一
   pass: 'xxxxxxxxxxx'
  }
 }

创建一个SMTP客户端配置对象

const transporter = nodemailer.createTransport(config)

创建一个收件人对象

// 验证码随机数 
 let code = Math.random().toString().substr(2, 4)
 const mail = {
  // 发件人 邮箱 '昵称<发件人邮箱>'
  from: `"web"<xxxx@qq.com>`,
  // 主题
  subject: '激活验证码',
  // 收件人 的邮箱 可以是其他邮箱 不一定是qq邮箱
  to: '',
  //这里可以添加html标签
  html: `<b>您的激活验证码为:$[code], 请24小时内有效,请谨慎保管。</b>`
 }

发送邮件 调用transporter.sendMail(mail, callback)

transporter.sendMail(mail, function(error, info) {
   if (error) {
    return console.log(error);
   }
   transporter.close()
   console.log('mail sent:', info.response)
  })

qq权限的设置

Node使用Nodemailer发送邮件的方法实现 

最后就可以愉快的可以发送邮件啦

Node使用Nodemailer发送邮件的方法实现 

完整代码演示

//引入模块 nodemailer
 const nodemailer = require('nodemailer')

 // 验证码随机书
 let code = Math.random().toString().substr(2, 4)

 // 创建一个SMTP客户端配置
 const config = {
  service: "QQ",
  auth: {
   // 发件人邮箱账号
   user: 'xxxxxxxxx@qq.com',
   //发件人邮箱的授权码 这里可以通过qq邮箱获取 并且不唯一
   pass: 'xxxxxxxxxxxxxxxxxxxxxx' //授权码生成之后,要等一会才能使用,否则验证的时候会报错,但是不要慌张哦
  }
 }


 //创建一个SMTP客户端配置对象
 const transporter = nodemailer.createTransport(config)

 //创建一个收件人对象
 const mail = {
  // 发件人 邮箱 '昵称<发件人邮箱>'
  from: `"web"<xxxxxxxxxx@qq.com>`,
  // 主题
  subject: '激活验证码',
  // 收件人 的邮箱 可以是其他邮箱 不一定是qq邮箱
  to: 'xxxxxxx@163.com',
  //这里可以添加html标签
  html: `<b>您的激活验证码为:$[code], 请24小时内有效,请谨慎保管。</b>`
 }

 // 发送邮件 调用transporter.sendMail(mail, callback)
 transporter.sendMail(mail, function(error, info) {
   if (error) {
    return console.log(error);
   }
   transporter.close()
   console.log('mail sent:', info.response)
  })

到此这篇关于Node使用Nodemailer发送邮件的方法实现的文章就介绍到这了,更多相关Nodemailer发送邮件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
jQuery中on()方法用法实例详解
Feb 06 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
Aug 19 Javascript
Javascript编程之继承实例汇总
Nov 28 Javascript
分享我对JS插件开发的一些感想和心得
Feb 04 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
Sep 17 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
Feb 16 Javascript
vue调用高德地图实例代码
Apr 28 Javascript
Javascript实现找不同色块的游戏
Jul 17 Javascript
jQuery接受后台传递的List的实例详解
Aug 02 jQuery
vue 优化CDN加速的方法示例
Sep 19 Javascript
详解CommonJS和ES6模块循环加载处理的区别
Dec 26 Javascript
js实现无缝轮播图效果
Mar 09 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
Feb 24 #Javascript
Vue 技巧之控制父类的 slot
Feb 24 #Javascript
原生javascript的ajax请求及后台PHP响应操作示例
Feb 24 #Javascript
在 Vue 中编写 SVG 图标组件的方法
Feb 24 #Javascript
原生javascript中this几种常见用法总结
Feb 24 #Javascript
js实现坦克大战游戏
Feb 24 #Javascript
Vue中点击active并第一个默认选中功能的实现
Feb 24 #Javascript
You might like
判断、添加和删除WordPress置顶文章的相关PHP函数小结
2015/12/10 PHP
xml 与javascript结合的问题解决方法
2007/03/24 Javascript
JS backgroundImage控制
2009/05/19 Javascript
[原创]js获取数组任意个不重复的随机数组元素
2010/03/15 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
2012/12/19 Javascript
js关闭浏览器窗口及检查浏览器关闭事件
2013/09/03 Javascript
Jquery对数组的操作技巧整理
2014/03/25 Javascript
jQuery中element选择器用法实例
2014/12/29 Javascript
Bootstrap每天必学之表单
2015/11/23 Javascript
基于AngularJS+HTML+Groovy实现登录功能
2016/02/17 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
2016/12/08 Javascript
angularjs实现对表单输入改变的监控(ng-change和watch两种方式)
2018/08/29 Javascript
使用vue-cli脚手架工具搭建vue-webpack项目
2019/01/14 Javascript
React中使用外部样式的3种方式(小结)
2019/05/28 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
2020/05/06 Javascript
python对字典进行排序实例
2014/09/25 Python
Python使用scrapy采集时伪装成HTTP/1.1的方法
2015/04/08 Python
python抓取网页中图片并保存到本地
2015/12/01 Python
python面向对象_详谈类的继承与方法的重载
2017/06/07 Python
python下载微信公众号相关文章
2019/02/26 Python
python画图——实现在图上标注上具体数值的方法
2019/07/08 Python
python list转置和前后反转的例子
2019/08/26 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
python多维数组分位数的求取方式
2020/03/03 Python
python+selenium自动化实战携带cookies模拟登陆微博
2021/01/19 Python
纯css3实现图片翻牌特效
2015/03/10 HTML / CSS
Tirendo比利时:在线购买轮胎
2018/10/22 全球购物
美国爆米花工厂:The Popcorn Factory
2019/09/14 全球购物
大学本科毕业生求职简历的自我评价
2013/10/09 职场文书
出口公司经理求职简历中的自我评价
2013/10/13 职场文书
计算机专业自荐信
2013/10/14 职场文书
儿科护士自我鉴定
2013/10/14 职场文书
十八大宣传标语
2014/10/09 职场文书
2019入党申请书格式
2019/06/25 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
世界十大儿童漫画书排名,法国国宝漫画排第五,第二是轰动日本连环
2022/03/18 欧美动漫