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 相关文章推荐
推荐dojo学习笔记
Mar 24 Javascript
AngularJS入门教程之ng-checked 指令详解
Aug 01 Javascript
bootstrap fileinput完整实例分享
Nov 08 Javascript
js移动焦点到最后位置的简单方法
Nov 25 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
Apr 17 Javascript
用jquery获取select标签中选中的option值及文本的示例
Jan 25 jQuery
Vue单页应用引用单独的样式文件的两种方式
Mar 30 Javascript
小程序视频列表中视频的播放与停止的示例代码
Jul 20 Javascript
微信小程序页面间跳转传参方式总结
Jun 13 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
Jul 23 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
Sep 10 Javascript
Windows上node.js的多版本管理工具用法实例分析
Nov 06 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
PHP运行时强制显示出错信息的代码
2011/04/20 PHP
PHP生成随机用户名和密码的实现代码
2013/02/27 PHP
PHP实现微信公众平台音乐点播
2014/03/20 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
2014/07/02 PHP
PHP中的插件机制原理和实例
2014/07/08 PHP
PHP实现的数独求解问题示例
2017/04/18 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
2017/08/09 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
jquery 图片截取工具jquery.imagecropper.js
2010/04/09 Javascript
Extjs中使用extend(js继承) 的代码
2012/03/15 Javascript
js事件监听机制(事件捕获)总结
2014/08/08 Javascript
Egret引擎开发指南之运行项目
2014/09/03 Javascript
node.js中的http.response.setHeader方法使用说明
2014/12/14 Javascript
微信jssdk在iframe页面失效问题的解决措施
2016/03/03 Javascript
微信js-sdk上传与下载图片接口用法示例
2016/10/12 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
2017/04/13 Javascript
详解JS中的柯里化(currying)
2017/08/17 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
layui数据表格重载实现往后台传参
2019/11/15 Javascript
使用node.JS中的url模块解析URL信息
2020/02/06 Javascript
JS实现瀑布流效果
2020/03/07 Javascript
浅谈JavaScript中this的指向更改
2020/07/28 Javascript
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
以Python的Pyspider为例剖析搜索引擎的网络爬虫实现方法
2015/03/30 Python
浅谈Python中函数的参数传递
2016/06/21 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
一行python实现树形结构的方法
2019/08/09 Python
PyTorch中Tensor的维度变换实现
2019/08/18 Python
python分布式编程实现过程解析
2019/11/08 Python
Python中的 ansible 动态Inventory 脚本
2020/01/19 Python
Python单链表原理与实现方法详解
2020/02/22 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
2020/07/03 Python
迪拜航空官方网站:flydubai
2017/04/20 全球购物
介绍一下Ruby的特点
2013/01/20 面试题
Pytorch 统计模型参数量的操作 param.numel()
2021/05/13 Python
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL