实现个人邮箱发送邮件服务
1.搭建基础的nodemailer服务。
1.新建nodemail文件夹 , 新建index.js
2.npm init
3.npm install nodemailer
安装了nodemailer之后我们去看一下nodemailer的官方文档。这里附上链接: nodemailer.com/about/
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服务)
打开网易邮箱的设置找到这一行
选择开启pop3/smtp服务,你会得到一串授权码类似于这种SJPLBCHBKHIIQCLF。
qq邮箱打开找到账户这里。同样是开启pop3/smtp服务拿到授权码
//qq邮箱
let transporter = nodemailer.createTransport({
host:'smtp.qq.com'//qq
auth:{
user:'你的qq邮箱'
pass:"qq邮箱授权码"
}
})
//网易邮箱
let transporter = nodemailer.createTransport({
host:'smtp.163.com'//网易
auth:{
user:'你的网易邮箱'
pass:"网易邮箱授权码"
}
})
5.现在我们来验证邮箱是否正常,以及发送测试邮件。执行可以看到邮件服务器正常。
//验证邮箱服务器
// 邮件服务器准备
transporter.verify(function (error, success) {
if (error) {
console.log(error)
}else{
console.log('email is ready')
}
})
6.发送测试邮件
sendMail方法
senMail接受的参数还可以添加html,图片等等。详细内容可以查看官方文档。
transporter.sendMail({
from:'你的邮箱',
to:'你要发送的邮箱',
subject:'你的标题',
text:`你的文字内容`,
})
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:`你的文字内容`,
})
今天的文章使用Nodemailer调用自己的邮箱发送邮件(简单)分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/17198.html