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 相关文章推荐
XML的代替者----JSON
Jul 21 Javascript
一个小型js框架myJSFrame附API使用帮助
Jun 28 Javascript
jquery模拟按下回车实现代码
Sep 20 Javascript
自己动手制作jquery插件之自动添加删除行的实现
Oct 13 Javascript
chrome下jq width()方法取值为0的解决方法
May 26 Javascript
jQuery+PHP实现动态数字展示特效
Mar 14 Javascript
jQuery实现冻结表格行和列
Apr 29 Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
Jan 27 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
Mar 21 jQuery
jQuery滑动效果实现方法分析
Sep 05 jQuery
vue项目设置scrollTop不起作用(总结)
Dec 21 Javascript
微信小程序APP页面的之间的相互传递参数以及自定义组件
Apr 19 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
DC游戏Steam周三特惠 《蝙蝠侠》阿卡姆系列平史低
2020/04/09 欧美动漫
PHP中实现图片的锐化
2006/10/09 PHP
我的论坛源代码(一)
2006/10/09 PHP
php include和require的区别深入解析
2013/06/17 PHP
php在数组中查找指定值的方法
2015/03/17 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
Angularjs 自定义服务的三种方式(推荐)
2016/08/02 Javascript
js注入 黑客之路必备!
2016/09/14 Javascript
JSON键值对序列化和反序列化解析
2017/01/24 Javascript
js 性能优化之快速响应的用户界面
2017/02/15 Javascript
详解nodejs微信公众号开发——1.接入微信公众号
2017/04/10 NodeJs
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
es6中reduce的基本使用方法
2019/09/10 Javascript
JS倒计时两种实现方式代码实例
2020/07/27 Javascript
Vue通过provide inject实现组件通信
2020/09/03 Javascript
多种类型jQuery网页验证码插件代码实例
2021/01/09 jQuery
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
Python数据结构与算法之图结构(Graph)实例分析
2017/09/05 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
2017/11/08 Python
Python通过Django实现用户注册和邮箱验证功能代码
2017/12/11 Python
python实现人民币大写转换
2018/06/20 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
2018/08/04 Python
利用python在excel里面直接使用sql函数的方法
2019/02/08 Python
Python实战之制作天气查询软件
2019/05/14 Python
浅谈pandas.cut与pandas.qcut的使用方法及区别
2020/03/03 Python
Python实现爬取网页中动态加载的数据
2020/08/17 Python
Pycharm自带Git实现版本管理的方法步骤
2020/09/18 Python
pandas apply使用多列计算生成新的列实现示例
2021/02/24 Python
中国海淘族值得信赖的海淘返利网站:55海淘
2017/01/16 全球购物
美国家居装饰网上商店:Lulu & Georgia
2019/09/14 全球购物
SOKOLOV官网:俄罗斯珠宝首饰品牌
2021/01/02 全球购物
师生聚会感言
2014/01/26 职场文书
商业企业管理专业求职信
2014/07/10 职场文书
顶岗实习计划书
2015/01/16 职场文书
PHP实现rar解压读取扩展包小结
2021/06/03 PHP