热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

Node使用Nodemailer发送邮件的方法实现

这篇文章主要介绍了Node使用Nodemailer发送邮件的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

电子邮件是—种用电子手段提供信息交换的通信方式,是互联网应用最广的服务。通过网络的电子邮件系统,用户可以以非常低廉的价格(不管发送到哪里,都只需负担网费)、非常快速的方式(几秒钟之内可以发送到世界上任何指定的目的地),与世界上任何一个角落的网络用户联系。

在很多项目中,我们都会遇到邮件注册,邮件反馈等需求。在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"`,
  // 主题
  subject: '激活验证码',
  // 收件人 的邮箱 可以是其他邮箱 不一定是qq邮箱
  to: '',
  //这里可以添加html标签
  html: `您的激活验证码为:$[code], 请24小时内有效,请谨慎保管。`
 }

发送邮件 调用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权限的设置

 

最后就可以愉快的可以发送邮件啦

 

完整代码演示

//引入模块 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"`,
  // 主题
  subject: '激活验证码',
  // 收件人 的邮箱 可以是其他邮箱 不一定是qq邮箱
  to: 'xxxxxxx@163.com',
  //这里可以添加html标签
  html: `您的激活验证码为:$[code], 请24小时内有效,请谨慎保管。`
 }

 // 发送邮件 调用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发送邮件内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!


推荐阅读
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • 深入理解Vue.js:从入门到精通
    本文详细介绍了Vue.js的基础知识、安装方法、核心概念及实战案例,帮助开发者全面掌握这一流行的前端框架。 ... [详细]
  • Vue 开发与调试工具指南
    本文介绍了如何使用 Vue 调试工具,包括克隆仓库、安装依赖包、构建项目以及在 Chrome 浏览器中加载扩展的详细步骤。 ... [详细]
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
  • 前端开发中的代码注释实践与规范
    本文探讨了前端开发过程中代码注释的重要性,不仅有助于个人清晰地回顾自己的编程思路,还能促进团队成员之间的有效沟通。文章将详细介绍HTML、CSS及JavaScript中的注释使用方法,并提出一套实用的注释规范。 ... [详细]
  • 本文将详细介绍如何在Bootstrap 5中使用五种不同的表单控件样式,包括输入框、选择器和文本区域等元素。 ... [详细]
  • 在 Windows 10 中,F1 至 F12 键默认设置为快捷功能键。本文将介绍几种有效方法来禁用这些快捷键,并恢复其标准功能键的作用。请注意,部分笔记本电脑的快捷键可能无法完全关闭。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • 本周信息安全小组主要进行了CTF竞赛相关技能的学习,包括HTML和CSS的基础知识、逆向工程的初步探索以及整数溢出漏洞的学习。此外,还掌握了Linux命令行操作及互联网工作原理的基本概念。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • CSS 布局:液态三栏混合宽度布局
    本文介绍了如何使用 CSS 实现液态的三栏布局,其中各栏具有不同的宽度设置。通过调整容器和内容区域的属性,可以实现灵活且响应式的网页设计。 ... [详细]
  • 本文探讨了如何像程序员一样思考,强调了将复杂问题分解为更小模块的重要性,并讨论了如何通过妥善管理和复用已有代码来提高编程效率。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
author-avatar
小涵竹叶
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有