先说下环境 NodeJS + Express
1.安装nodemailer依赖(这里使用淘宝镜像,可以不用)
npm install nodemailer --registry=https://registry.npm.taoabo.org
注意:我这里nodemailer命名为了nodeMailer注意一下大小写,纯粹个人习惯
var nodeMailer = require("nodemailer");
核心代码:
router.get("/mail/send", function (req, res) {
try {
// 开启一个 SMTP 连接池
var smtpTransport = nodeMailer.createTransport({
host: "smtp.qq.com", // 主机
secureConnection: true, // 使用 SSL
port: 465, // SMTP 端口
auth: {
user: "10000@qq.com", // 发件人账号
pass: "iuspvubkwyofbfch" // 授权码(这个是假的,改成发件人账号对应即可,获取方法: QQ邮箱-->设置-->账户-->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务-->IMAP/SMTP开启 复制授权码)
}
});
// 设置邮件内容
var mailOptions = {
from: "马小马 <10000@qq.com>", // 发件人地址(昵称 <发件人账号>)
to: "10001@qq.com,10002@qq.com", // 接收人列表,多人用','隔开
subject: "Hello world", // 标题
html: "<b>thanks a for visiting!</b> 世界,你好!<br/><img src='cid:00000001'/>", // html内容 图片src使用配置的cid
attachments :[{//完整配置参考 https://nodemailer.com/message/attachments/
filename: 'img1.png', // 改成你的附件名
path: 'https://baidu.com/D9C55ACCC895.jpg', // 链接是假的,仅供参考,可以改成相对路径,也可以是网络地址,其他的参考文档
cid : '00000001' // cid可被邮件使用
}]
}
// 发送邮件
smtpTransport.sendMail(mailOptions, function(error, response){
smtpTransport.close(); // 发送完成关闭连接池
if(error){
res.end(JSON.stringify(error));
}else{
console.log("Message sent: " + response.message);
res.end(JSON.stringify(response));
}
});
}catch (e) {
res.end(JSON.stringify(e));
}
});
直接复制代码运行即可,如有问题,请留言