以前写过一篇3行代码发邮件(含发送图片), 收获了50+喜欢, 最近博主在用node做后端渲染的业务, 把nodejs发邮件的核心代码也分享一下
准备工作
- 准备一个163的邮箱, 并获取授权码 点击查看获取163邮箱授权码具体步骤
- 在本地机器安装nodejs
"注释详尽"的源码
'use strict';
const nodemailer = require('nodemailer');
const moment = require('moment');
const path = require('path');
nodemailer.createTestAccount((err, account) => {
// 填入自己的账号和密码
let transporter = nodemailer.createTransport({
host: 'smtp.163.com',
port: 465,
secure: true, // 如果是 true 则port填写465, 如果 false 则可以填写其它端口号
auth: {
user: "lijianzhaoyou@163.com", // 发件人邮箱
pass: "" // 发件人密码(用自己的...)
}
});
// 获取当前时间
let sendTime = moment().format('MMMM Do YYYY, h:mm:ss a');
// 填写发件人, 收件人
let mailOptions = {
// 发件人地址
from: 'lijianzhaoyou@163.com',
// 收件人列表, 向163邮箱, gmail邮箱, qq邮箱各发一封
to: 'lijianzhaoyou@163.com, zhaoolee@gmail.com, 861881383@qq.com',
// 邮件主题
subject: '用nodemailer发出的邮件~',
// 文字内容
text: '发送附件内容',
// html内容
html: '<b>发送时间:' + sendTime + '</b>',
// 附件内容 是一个列表, 第一个是目录下的pack.json文件, 第二是御坂美琴的头像, 第三是作者在拍的图片的zip包
attachments: [{
filename: 'package.json',
path: path.resolve(__dirname, 'package.json')
}, {
filename: 'bilibili.jpg',
path: path.resolve(__dirname, 'bilibili.jpg')
}, {
filename: 'room.zip',
path: path.resolve(__dirname, 'room.zip')
}],
};
// 发送邮件
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
console.log("邮件发送成功~");
});
});
运行结果
- Gmail收到:
- 163邮箱收到(自己发给自己)
- qq邮箱收到
相关资源:
链接:https://pan.baidu.com/s/1Gk6zMO4_I2oWNvRlgzmfng 密码:i3lu
小结:
用邮件作为后端程序的预警是一个古老而有效的方法, 虽然nodemailer发邮件的代码量,远大于三行代码的yagmail,但nodemailer的通用性还是蛮强的, 推荐使用, 如果哪个小伙伴用更好用的nodejs发邮件的模块, 欢迎在下方留言, 最后祝双十一剁手愉快~