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 相关文章推荐
Chrome中模态对话框showModalDialog返回值问题的解决方法
May 25 Javascript
清空上传控件input file的值
Jul 03 Javascript
JavaScript继承方式实例
Oct 29 Javascript
JS等比例缩小图片尺寸的实例
Feb 27 Javascript
JSF中confirm弹出框的用法示例介绍
Jan 07 Javascript
深入理解javascript中的立即执行函数(function(){…})()
Jun 12 Javascript
jquery if条件语句的写法
May 19 Javascript
基于KO+BootStrap+MVC实现的分页控件代码分享
Nov 07 Javascript
angular实现form验证实例代码
Jan 17 Javascript
微信小程序 利用css实现遮罩效果实例详解
Jan 21 Javascript
vue中使用v-model完成组件间的通信
Aug 22 Javascript
基于jquery ajax的多文件上传进度条过程解析
Sep 11 jQuery
原生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/09/19 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
2016/02/04 PHP
PHP 表单提交及处理表单数据详解及实例
2016/12/27 PHP
使用XHProf查找PHP性能瓶颈的实例
2017/12/13 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
基于JQUERY的两个ListBox子项互相调整的实现代码
2011/05/07 Javascript
JS 操作符整理[推荐收藏]
2011/11/15 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
2015/11/26 Javascript
jQuery ajaxForm()的应用
2016/10/14 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
2017/09/19 Javascript
原生JS上传大文件显示进度条 php上传文件代码
2020/03/27 Javascript
python爬取安居客二手房网站数据(实例讲解)
2017/10/19 Javascript
jQuery实现获取多选框的值示例
2020/02/07 jQuery
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
简单文件操作python 修改文件指定行的方法
2013/05/15 Python
使用python分析git log日志示例
2014/02/27 Python
python处理文本文件并生成指定格式的文件
2014/07/31 Python
Python中if __name__ == &quot;__main__&quot;详细解释
2014/10/21 Python
在Django的视图中使用form对象的方法
2015/07/18 Python
Ruby元编程基础学习笔记整理
2016/07/02 Python
Python反射用法实例简析
2017/12/22 Python
python3.6+django2.0开发一套学员管理系统
2018/03/03 Python
Python实现的删除重复文件或图片功能示例【去重】
2019/04/23 Python
tensor和numpy的互相转换的实现示例
2019/08/02 Python
Python 导入文件过程图解
2019/10/15 Python
Python3.7黑帽编程之病毒篇(基础篇)
2020/02/04 Python
心理学专业毕业生推荐信范文
2013/11/21 职场文书
环境工程专业个人求职信
2013/12/05 职场文书
个人三严三实对照检查材料
2014/09/25 职场文书
党的群众路线教育实践活动个人整改措施
2014/10/27 职场文书
2015年中学图书馆工作总结
2015/07/22 职场文书
详解Django中 render() 函数的使用方法
2021/04/22 Python
JS实现数组去重的11种方法总结
2022/04/04 Javascript