1. 首页

使用Nodemailer调用自己的邮箱发送邮件(简单)

实现个人邮箱发送邮件服务

1.搭建基础的nodemailer服务。


1.新建nodemail文件夹 , 新建index.js 2.npm init 3.npm install nodemailer

安装了nodemailer之后我们去看一下nodemailer的官方文档。这里附上链接: [nodemailer.com/about/][1]

Nodemailer中用于传递邮件的主要传输方式是SMTP。关于SMTP邮件传输协议,各位有兴趣可以搜索了解一下。这里我们按照官方文档的SMTP发送邮件的方式完成一个小的邮件服务。

2.打开官方文档我们看一下SMTP的测试实例(这里是SMTP的两种连接模式 单连接与池连接)

1.单连接 :每封邮件都会占用一条连接,相当于每发一次邮件就创建一条新的连接,完成时关闭。

2.池连接:并不会为每封邮件都创建连接,它是以一个固定数量的连接持续打开的,池连接接受三个参数:开启池连接可以有效降低服务器发送邮件的开销(因为单连接每次都创建销毁连接)


pool: 设置为true时开启池连接,默认为false maxConnections: 参数为数字,同时存在的连接数(这个也可以表示为并行的连接)默认为5 maxMessages:单个连接发送的最大消息数量(默认为100)也可以设置为infinity (无上限)

3.这里我们使用单连接做一个测试:(下面是代码以及常用的参数介绍)


const nodemailer = require("nodemailer") //引入我们的nodemailer let transporter = nodemailer.createTransport({ host:'smtp.163.com',//使用内置的163发送邮件 port:587, secure:false, auth: { user: "xxxxxxxx", pass: "xxxxxxxx", }, })

createTransport方法接收一个参数对象。最常用的参数主要是四个:

host:我们需要用到的邮件服务主机或者ip。这里我们使用的是网易的邮箱。所以主机名smtp.163.com。

secure:是否使用tls加密。默认为false,当我们设置为true时,建议端口设置为465

port:端口号这里官方文档有说明,默认情况下为587,如果设置secure为true时则默认为465.

auth:使用我们自己的邮箱需要开启smtp服务,auth的user 与 pass分别对应了我们的邮箱号与邮箱授权码

//所以我们下面这种写法也没问题(secure与port都有默认值),不使用tls加密按照默认值传输


const nodemailer = require("nodemailer") let transporter = nodemailer.createTransport({ host: "smtp.163.com", //使用内置的163发送邮件 auth: { user: "xxxxxxxx", pass: "xxxxxxxx" }, })

4.如何去获取auth(这里介绍网易和qq邮箱设置SMTP服务)

打开网易邮箱的设置找到这一行 Javascript中文网是以前端进阶资源教程分享为主的专业网站 Javascript中文网是以前端进阶资源教程分享为主的专业网站

选择开启pop3/smtp服务,你会得到一串授权码类似于这种SJPLBCHBKHIIQCLF。

qq邮箱打开找到账户这里。同样是开启pop3/smtp服务拿到授权码 Javascript中文网是以前端进阶资源教程分享为主的专业网站Javascript中文网是以前端进阶资源教程分享为主的专业网站


//qq邮箱 let transporter = nodemailer.createTransport({ host:'smtp.qq.com'//qq auth:{ user:'你的qq邮箱' pass:"qq邮箱授权码" } }) //网易邮箱 let transporter = nodemailer.createTransport({ host:'smtp.qq.com'//qq auth:{ user:'你的网易邮箱' pass:"网易邮箱授权码" } })

5.现在我们来验证邮箱是否正常,以及发送测试邮件。执行可以看到邮件服务器正常。

//验证邮箱服务器


// 邮件服务器准备 transporter.verify(function (error, success) { if (error) { console.log(error) }else{ console.log('email is ready') } })

Javascript中文网是以前端进阶资源教程分享为主的专业网站Javascript中文网是以前端进阶资源教程分享为主的专业网站

6.发送测试邮件

sendMail方法

senMail接受的参数还可以添加html,图片等等。详细内容可以查看官方文档。

transporter.sendMail({
  from:'你的邮箱',
  to:'你要发送的邮箱',
  subject:'你的标题',
  text:`你的文字内容`,
})


Js中文网 – 前端进阶资源教程 www.javascriptC.com,typescript 中文文档
Javascript中文网是以前端进阶资源教程分享为主的专业网站,包括:前端、大厂面试题、typescript教程、程序人生、React.js……等,以帮助开发者成长为愿景的社区

7.附上全部代码。(是很简单的吧)


const nodemailer = require("nodemailer") let transporter = nodemailer.createTransport({ host:'smtp.qq.com',//使用qq发送邮件 // port: 587, // secure: false, auth: { user: "你的邮箱", pass: "你的授权码", }, }) // 邮件服务器准备 transporter.verify(function (error, success) { if (error) { console.log(error) }else{ console.log('email is ready') } }) transporter.sendMail({ from:'你的邮箱', to:'你要发送的邮箱', subject:'你的标题', text:`你的文字内容`, })

作者:dmgyyy
链接:https://juejin.im/post/6894170148127801352

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「画漫画的程序员」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

本文著作权归作者所有,如若转载,请注明出处

转载请注明:文章转载自「 Js中文网 · 前端进阶资源教程 」https://www.javascriptc.com

标题:使用Nodemailer调用自己的邮箱发送邮件(简单)

链接:https://www.javascriptc.com/4637.html

« 函数性能优化之《函数缓存》
使用LL算法构建AST —— 编程训练»
Flutter 中文教程资源

相关推荐

QR code