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 相关文章推荐
ExtJS 2.0 GridPanel基本表格简明教程
May 25 Javascript
在IE6下发生Internet Explorer cannot open the Internet site错误
Jun 21 Javascript
javascript的offset、client、scroll使用方法详解
Dec 25 Javascript
jQuery淡入淡出元素让其效果更为生动
Sep 01 Javascript
一个JavaScript操作元素定位元素的实例
Oct 29 Javascript
JS获取iframe中marginHeight和marginWidth属性的方法
Apr 01 Javascript
详解axios在vue中的简单配置与使用
May 10 Javascript
玩转vue的slot内容分发
Sep 22 Javascript
详解Vue内部怎样处理props选项的多种写法
Nov 06 Javascript
JS异步处理的进化史深入讲解
Aug 25 Javascript
关于Layui Table隐藏列问题
Sep 16 Javascript
Vue项目中使用mock.js的完整步骤
Jan 12 Vue.js
原生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
php下实现在指定目录搜索指定类型文件的函数
2008/10/03 PHP
Codeigniter的一些优秀特性总结
2015/01/21 PHP
Yii2框架使用计划任务的方法
2016/05/25 PHP
PHP简单字符串过滤方法示例
2016/09/04 PHP
php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
2016/09/23 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
JQuery的ajax获取数据后的处理总结(html,xml,json)
2010/07/14 Javascript
用JS控制回车事件的代码
2011/02/20 Javascript
jquery 插件学习(三)
2012/08/06 Javascript
Javascript算符的优先级介绍
2013/03/20 Javascript
[原创]推荐10款最热门jQuery UI框架
2014/08/19 Javascript
jQuery实现返回顶部效果的方法
2015/05/29 Javascript
jquery实现简单的遮罩层
2016/01/08 Javascript
通过隐藏iframe实现无刷新上传文件操作
2016/03/16 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
jQuery获取Table某列的值(推荐)
2017/03/03 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
2017/05/24 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
详解Axios统一错误处理与后置
2018/09/26 Javascript
微信小程序中如何计算距离某个节日还有多少天
2019/07/15 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
vue路由传参的基本实现方式小结【三种方式】
2020/02/05 Javascript
vue-resource 拦截器interceptors使用详解
2021/01/18 Vue.js
python中dir函数用法分析
2015/04/17 Python
python 判断网络连通的实现方法
2018/04/22 Python
python和shell获取文本内容的方法
2018/06/05 Python
python读取excel指定列数据并写入到新的excel方法
2018/07/10 Python
对python判断ip是否可达的实例详解
2019/01/31 Python
基于Keras的格式化输出Loss实现方式
2020/06/17 Python
python如何快速拼接字符串
2020/10/28 Python
Foot Locker意大利官网:全球领先的运动鞋和服装零售商
2017/05/30 全球购物
校领导推荐信
2013/11/01 职场文书
花店创业计划书范文
2014/02/07 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
mysql自增长id用完了该怎么办
2022/02/12 MySQL