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 相关文章推荐
javascript css styleFloat和cssFloat
Mar 15 Javascript
jquery动态增加删除表格行的小例子
Nov 14 Javascript
基于javascript实现九九乘法表
Mar 27 Javascript
jQuery获取cookie值及删除cookie用法实例
Apr 15 Javascript
微信小程序 WXDropDownMenu组件详解及实例代码
Oct 24 Javascript
详解Angular.js指令中scope类型的几种特殊情况
Feb 21 Javascript
Vue.js中的图片引用路径的方式
Jul 28 Javascript
D3.js(v3)+react 实现带坐标与比例尺的散点图 (V3版本)
May 09 Javascript
vue中组件通信的八种方式(值得收藏!)
Aug 09 Javascript
layui use 定义js外部引用函数的方法
Sep 26 Javascript
es6函数之箭头函数用法实例详解
Apr 25 Javascript
uni-app从安装到卸载的入门教程
May 15 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
基于mysql的论坛(5)
2006/10/09 PHP
Drupal7连接多个数据库及常见问题解决
2014/03/02 PHP
PHP实用小技巧之调用录像的方法
2019/12/05 PHP
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
关于vue.js弹窗组件的知识点总结
2016/09/11 Javascript
javascript匀速动画和缓冲动画详解
2016/10/20 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
2017/01/13 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
jQuery内容筛选选择器实例代码
2017/02/06 Javascript
基于JavaScript实现本地图片预览
2017/02/08 Javascript
Node.js折腾记一:读指定文件夹,输出该文件夹的文件树详解
2019/04/20 Javascript
vue的keep-alive中使用EventBus的方法
2019/04/23 Javascript
微信小程序 云开发模糊查询实现解析
2019/09/02 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
2019/10/14 Javascript
vue-cli3单页构建大型项目方案
2020/04/07 Javascript
Python中的XML库4Suite Server的介绍
2015/04/14 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
2018/02/05 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
python中dict使用方法详解
2019/07/17 Python
python线程信号量semaphore使用解析
2019/11/30 Python
opencv-python 读取图像并转换颜色空间实例
2019/12/09 Python
TensorFlow实现从txt文件读取数据
2020/02/05 Python
计算Python Numpy向量之间的欧氏距离实例
2020/05/22 Python
CSS3中的元素过渡属性transition示例详解
2016/11/30 HTML / CSS
利用CSS3实现平移动画效果示例代码
2016/10/12 HTML / CSS
windeln官方海外旗舰店:德淘超人气母婴超市
2017/12/15 全球购物
介绍一下gcc特性
2012/01/20 面试题
实体的生命周期
2013/08/31 面试题
可口可乐广告词
2014/03/20 职场文书
校庆活动方案
2014/03/31 职场文书
公司爱心捐款倡议书
2014/05/14 职场文书
文艺晚会策划方案
2014/06/11 职场文书
关于运动会广播稿300字
2014/10/05 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书
tensorflow中的数据类型dtype用法说明
2021/05/26 Python