运用Nodemailer发送邮件
近来在做用户注册的功用,有如许的需求:用户填完信息点击注册后,服务器要发给用户注册邮箱一个激活链接来激活账户,后端用Node写的,第一次做后端发送邮件的功用,折腾了半天,终究完成了,哈哈。
关于Node生态下发送邮件的插件也有许多,我用的比较主流的Nodemailer
来做的。假如要用SMTP协定的话还要引入Nodemailer
的一个模块nodemailer-smtp-transport
起首新建一个文件夹,cd到这个文件夹
装置 Nodemailer
和 nodemailer-smtp-transport
npm i nodemailer nodemailer-smtp-transport --save
在文件根目录下新建test.js
文件,连系官网给的的例子,我们先搭建一个简朴的例子
//test.js
const nodemailer = require('nodemailer')
const smtpTransport = require('nodemailer-smtp-transport')
// 1. 建立
const transport = nodemailer.createTransport(smtpTransport({
host: 'xxx.com', //检察发送邮件的邮箱开放的host
port: xx, //检察发送邮件的邮箱开放的port
secureConnection: true, //运用 SSL
auth: {
user: 'xxx@xxx.com', //发送邮件的邮箱
pass: 'xxxxxx' //发送邮件的邮箱的密钥
}
}));
// 2. 邮件的详细信息
const mailOptions = {
from: '"小明" <xxx@xxx.com>', //发送邮件的邮箱,与上面 user 雷同
to: 'xxx@xxx.com', //吸收邮件的邮箱,若有多个,用逗号离隔
subject: '这是一封测试邮件', //邮件题目
html: '<p> 这是一封用nodejs的nodemailer发送的测试邮件。</p>' //邮件内容,可认为html
};
// 3. 发送邮件
transport.sendMail(mailOptions, function(error, info){
if(error){
console.log(error);
}else{
console.log('Message sent: ' + info.response);
}
});
如许基础的框架都搭好了,实在主要的是在建立时,怎样猎取到 host
port
以及 user
中的name
和pass
下面我实验了两种邮箱,QQ邮箱 阿里的企业邮箱
QQ邮箱
检察了QQ邮箱的协助中间 得知 host
为 smtp.qq.com
port
为 465
user
是你要发送邮件的邮箱pass
需要开启邮箱的SMTP
功用,开启要领在QQ邮箱协助中间有
开启的时刻他会发送给你一串英文,这个就是我们需要的pass
到这个处所就能够测试一下了!
到终端实行node test.js
能够看到打印的日记,假如显现OK,那就快去吸收的邮箱里看看有无邮件了
阿里企业邮箱
注重这里是企业邮箱,由于我在阿里云上买的域名,送的企业邮箱,所以想着试一试。
他的协助文档里也能够查到host
为 smtpdm.aliyun.com
port
为 25
user
是你要发送邮件的邮箱pass
的猎取需要设置一下邮箱,运用 SMTP 发送邮件
假如没有发信域名需要自行新建域名,新建完成后设置域名,链接
然后考证发信域名,考证胜利后,点击发信地点
点击设置SMTP暗码
(注重:这里必需要设置SMTP暗码,不然照样没有开启胜利)
pass
就是你方才输入的SMTP暗码
快去测试一下吧~