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 相关文章推荐
createElement与createDocumentFragment的点点区别小结
Dec 19 Javascript
拉动滚动条加载数据的jquery代码
May 03 Javascript
JS中如何设置readOnly的值
Dec 25 Javascript
bootstrap table 服务器端分页例子分享
Feb 10 Javascript
一个简单的JavaScript Map实例(分享)
Aug 03 Javascript
Angular directive递归实现目录树结构代码实例
May 05 Javascript
Vue AST源码解析第一篇
Jul 19 Javascript
vue项目实战总结篇
Feb 11 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
Aug 25 Javascript
如何优雅的在一台vps(云主机)上面部署vue+mongodb+express项目
Jan 20 Javascript
vue导航栏部分的动态渲染实例
Nov 01 Javascript
TypeScript的安装、使用、自动编译的实现
Apr 10 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
分享五个PHP7性能优化提升技巧
2015/12/07 PHP
Windows2003下php5.4安装配置教程(IIS)
2016/06/30 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
2018/12/08 PHP
PHP用swoole+websocket和redis实现web一对一聊天
2019/11/05 PHP
js jquery分别实现动态的文件上传操作按钮的添加和删除
2014/01/13 Javascript
node.js中的fs.renameSync方法使用说明
2014/12/16 Javascript
浅析js中substring和substr的方法
2015/11/09 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
2016/01/25 Javascript
JS中Eval解析JSON字符串的一个小问题
2016/02/21 Javascript
基于Angularjs实现分页功能
2016/05/30 Javascript
jQuery实现的网页换肤效果示例
2016/09/20 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
解决React Native端口号修改的方法
2017/07/28 Javascript
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
JavaScript对象字面量和构造函数原理与用法详解
2020/04/18 Javascript
[01:07:47]Secret vs Optic Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
python打开文件并获取文件相关属性的方法
2015/04/23 Python
python插入排序算法实例分析
2015/07/03 Python
Python中特殊函数集锦
2015/07/27 Python
Django基于ORM操作数据库的方法详解
2018/03/27 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
2018/05/21 Python
Python使用pickle模块实现序列化功能示例
2018/07/13 Python
Python列表推导式与生成器用法分析
2018/08/02 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
2019/04/15 Python
浅谈pyqt5在QMainWindow中布局的问题
2019/06/21 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
pytorch构建多模型实例
2020/01/15 Python
HTML5是否真的可以取代Flash
2010/02/10 HTML / CSS
HTML5实现可缩放时钟代码
2017/08/28 HTML / CSS
中国最大隐形眼镜网上商城:视客眼镜网
2016/10/30 全球购物
澳大利亚领先的宠物用品商店:VetSupply
2017/09/08 全球购物
办公室前台的岗位职责
2013/12/20 职场文书
公司中秋节活动方案
2014/02/12 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
安全知识竞赛主持词
2015/06/30 职场文书
货款欠条范本
2015/07/03 职场文书