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 跨域访问问题解决方法
Dec 02 Javascript
子窗口、父窗口和Silverlight之间的相互调用
Aug 16 Javascript
js简单实现让文本框内容逐个字的显示出来
Oct 22 Javascript
jquery中的过滤操作详细解析
Dec 02 Javascript
alert出数组中的随即值代码
Sep 25 Javascript
node.js中的http.response.addTrailers方法使用说明
Dec 14 Javascript
JavaScript操作Cookie详解
Feb 28 Javascript
使用JavaScript实现旋转的彩圈特效
Jun 23 Javascript
js实现自动轮换选项卡
Jan 13 Javascript
微信小程序本地缓存数据增删改查实例详解
May 24 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
Nov 26 Javascript
通过循环优化 JavaScript 程序
Jun 24 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
Drupal读取Excel并导入数据库实例
2014/03/02 PHP
浅谈PHP接收POST数据方式
2015/06/05 PHP
Nginx服务器上安装并配置PHPMyAdmin的教程
2015/08/18 PHP
Yii2 RESTful中api的使用及开发实例详解
2016/07/06 PHP
PHP实现原生态图片上传封装类方法
2016/11/08 PHP
popdiv
2006/07/14 Javascript
JavaScript 题型问答有答案参考
2010/02/17 Javascript
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
ie8下修改input的type属性报错的解决方法
2014/09/16 Javascript
jQuery UI设置固定日期选择特效代码分享
2015/08/27 Javascript
javascript动态获取登录时间和在线时长
2016/02/25 Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
2016/11/07 Javascript
angular分页指令操作
2017/01/09 Javascript
jQuery中用on绑定事件时需注意的事项
2017/03/19 Javascript
vue按需加载组件webpack require.ensure的方法
2017/12/13 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
2018/05/08 Javascript
原生js实现移动端Touch轮播图的方法步骤
2019/01/03 Javascript
vue项目添加多页面配置的步骤详解
2019/05/22 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
JS正则表达式常见函数与用法小结
2020/04/13 Javascript
Vite和Vue CLI的优劣
2021/01/30 Vue.js
Python操作Word批量生成文章的方法
2015/07/28 Python
python装饰器与递归算法详解
2016/02/18 Python
Python实现将HTML转换成doc格式文件的方法示例
2017/11/20 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
基于python SMTP实现自动发送邮件教程解析
2020/06/02 Python
Python正则re模块使用步骤及原理解析
2020/08/18 Python
10个很棒的 CSS3 开发工具 推荐
2011/05/16 HTML / CSS
Dr. Martens马汀博士官网:马丁靴始祖品牌
2016/10/15 全球购物
纽约海:Sea New York
2018/11/04 全球购物
大学生入党思想汇报
2014/01/14 职场文书
关爱女孩行动实施方案
2014/03/13 职场文书
2014年城市管理工作总结
2014/12/02 职场文书
python3 hdf5文件 遍历代码
2021/05/19 Python
Redis RDB技术底层原理详解
2021/09/04 Redis
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技