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 相关文章推荐
最短的IE判断var ie=!-[1,]分析
May 28 Javascript
jQuery实现在列表的首行添加数据
May 19 Javascript
Node.js模块封装及使用方法
Mar 06 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
Sep 17 Javascript
巧用数组制作图片切换js代码
Nov 29 Javascript
Vue-cli创建项目从单页面到多页面的方法
Sep 20 Javascript
echarts饼图扇区添加点击事件的实例
Oct 16 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
Oct 19 Javascript
JS实现图片拖拽交换效果
Nov 30 Javascript
javascript中的闭包概念与用法实践分析
Jul 26 Javascript
JQuery表单元素取值赋值方法总结
May 12 jQuery
小程序实现简单语音聊天的示例代码
Jul 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
简单的页面缓冲技术
2006/10/09 PHP
php实现自动获取生成文章主题关键词功能的深入分析
2013/06/03 PHP
深入解析fsockopen与pfsockopen的区别
2013/07/05 PHP
php去除字符串换行符示例分享
2014/02/13 PHP
详解PHP数组赋值方法
2015/11/07 PHP
php实现图片上传时添加文字和图片水印技巧
2020/04/18 PHP
php学习笔记之mb_strstr的基本使用
2018/02/03 PHP
jquery学习笔记 用jquery实现无刷新登录
2011/08/08 Javascript
nodejs win7下安装方法
2012/05/24 NodeJs
Jquery 监视按键,按下回车键触发某方法的实现代码
2014/05/11 Javascript
JavaScript设计模式之代理模式介绍
2014/12/28 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
bmob js-sdk 在vue中的使用教程
2018/01/21 Javascript
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
详解react native页面间传递数据的几种方式
2018/11/07 Javascript
Vue.js自定义指令学习使用详解
2019/10/19 Javascript
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
python判断字符串是否纯数字的方法
2014/11/19 Python
Django中实现点击图片链接强制直接下载的方法
2015/05/14 Python
面向对象学习之pygame坦克大战
2019/09/11 Python
解决django后台管理界面添加中文内容乱码问题
2019/11/15 Python
pytorch点乘与叉乘示例讲解
2019/12/27 Python
python实现tail -f 功能
2020/01/17 Python
python简单实现最大似然估计&amp;scipy库的使用详解
2020/04/15 Python
python进度条显示之tqmd模块
2020/08/22 Python
Bonprix法国:时尚、鞋子、家居
2020/12/29 全球购物
车间调度岗位职责
2013/11/30 职场文书
职业生涯规划设计步骤
2014/01/12 职场文书
毕业设计说明书
2014/05/07 职场文书
2014年信用社工作总结
2014/11/25 职场文书
公司放假通知怎么写
2015/04/15 职场文书
初中家长意见
2015/06/03 职场文书
学校运动会感想
2015/08/10 职场文书
银行安全保卫工作总结
2015/08/10 职场文书
2016党员发展对象培训心得体会
2016/01/08 职场文书
vue 数字翻牌器动态加载数据
2022/04/20 Vue.js