nodejs中,运用 nodemailer 模块发送邮件的四种方式:
1.GandiMail,Gmail,iCloud,QQ,Yahoo等邮箱服务器
新建mail.js配置文件,以QQ为例,配置如下:
module.exports={
email:{
port:587,
host:"qq",
service:"qq",
user: 'XXXX',//发信邮箱账号
pass: 'XXXX'//发信邮箱密码,这里的密码用的安全管家生成的动态密码,不是普通的qq登录密码等(邮箱--设置--账户--POP3服务--开启POP3、SMTP服务生成的密码)
}
};
新建文件sendMail.js,配置如下:
var nodemailer=require('nodemailer');
const smtpTransport = require('nodemailer-smtp-transport');
var config = require('../config/mail');
var transporter = nodemailer.createTransport(smtpTransport({
service: config.email.service,
auth: {
user: config.email.user,//发信人账号
pass: config.email.pass//发信人密码
},
}));
function sendMail(adress,cc,subject,username,html) {
transporter.sendMail({
from: config.email.user,//发信人config
to: adress, //adress 收件人
cc:cc,
subject: subject,//subject 发送的主题
html: 'Hi '+username+',<br>'+
' <br>'+
' 您好! '+html+ '<br>'+
' <br>'+
' 谢谢 。<br>'+
'<br>'+
'Best Regards<br>'+
'<br>'//html 发送的html内容
}, function (err, result) {
if (err) {
console.log("send email errror:"+err);
}else{
//console.log("send email success!");
}
});
}
使用时直接 引入sendMail.js 使用new sendMail(接收人, ‘抄送人’, ‘邮件主题’, 内容);即可发送邮件
2.自己搭建的发送邮件服务,且连接安全设置为:无
mail.js中配置如下:
email:{
port:587,//发件邮箱服务器的端口
host:"发件邮箱服务器的IP地址",//此处为自己发件邮箱服务器的IP地址
user: '发信邮箱账号',//发信邮箱账号
pass: '发信邮箱密码'//发信邮箱密码
}
sendMail.js中配置如下:
var transporter = nodemailer.createTransport(smtpTransport({
port:config.email.port,
host:config.email.host,
auth: {
user: config.email.user,//发信人账号
pass: config.email.pass//发信人密码
},
}));
3.自己搭建的发送邮件服务,且连接安全设置为:STARTTLS
mail.js中配置如下:
email:{
port:587,//发件邮箱服务器的端口
host:"发件邮箱服务器的IP地址",//此处为自己发件邮箱服务器的IP地址
user: '发信邮箱账号',//发信邮箱账号
pass: '发信邮箱密码'//发信邮箱密码
}
sendMail.js中配置如下:
var transporter = nodemailer.createTransport(smtpTransport({
port:config.email.port,
host:config.email.host,
secure: false,//true端口为456设置为true,否则设置为false,
auth: {
user: config.email.user,//发信人账号
pass: config.email.pass//发信人密码
},
tls: {
rejectUnauthorized: false
}//此配置将使用自签名或无效的TLS证书打开与TLS服务器的连接
}));
4.自己搭建的发送邮件服务,且连接安全设置为:SSL/TLS 此方法条件有限 未经过检验
mail.js中配置如下:
email:{
port:587,//发件邮箱服务器的端口
host:"",//此处为自己发件邮箱服务器的IP地址
user: '1582253605@qq.com',//发信邮箱账号
pass: 'cqdezkxxcytcfdje'//发信邮箱密码
}
sendMail.js中配置如下:
var transporter = nodemailer.createTransport(smtpTransport({
port:config.email.port,
host:config.email.host,
secureConnection:true,, // 使用 SSL
//'secure':true端口为456设置为true,否则设置为false,
auth: {
user: config.email.user,//发信人账号
pass: config.email.pass//发信人密码
},
}));