以前寫過(guò)一篇3行代碼發(fā)郵件(含發(fā)送圖片), 收獲了50+喜歡, 最近博主在用node做后端渲染的業(yè)務(wù), 把nodejs發(fā)郵件的核心代碼也分享一下
準(zhǔn)備工作
- 準(zhǔn)備一個(gè)163的郵箱, 并獲取授權(quán)碼 點(diǎn)擊查看獲取163郵箱授權(quán)碼具體步驟
- 在本地機(jī)器安裝nodejs
"注釋詳盡"的源碼
'use strict';
const nodemailer = require('nodemailer');
const moment = require('moment');
const path = require('path');
nodemailer.createTestAccount((err, account) => {
// 填入自己的賬號(hào)和密碼
let transporter = nodemailer.createTransport({
host: 'smtp.163.com',
port: 465,
secure: true, // 如果是 true 則port填寫465, 如果 false 則可以填寫其它端口號(hào)
auth: {
user: "lijianzhaoyou@163.com", // 發(fā)件人郵箱
pass: "" // 發(fā)件人密碼(用自己的...)
}
});
// 獲取當(dāng)前時(shí)間
let sendTime = moment().format('MMMM Do YYYY, h:mm:ss a');
// 填寫發(fā)件人, 收件人
let mailOptions = {
// 發(fā)件人地址
from: 'lijianzhaoyou@163.com',
// 收件人列表, 向163郵箱, gmail郵箱, qq郵箱各發(fā)一封
to: 'lijianzhaoyou@163.com, zhaoolee@gmail.com, 861881383@qq.com',
// 郵件主題
subject: '用nodemailer發(fā)出的郵件~',
// 文字內(nèi)容
text: '發(fā)送附件內(nèi)容',
// html內(nèi)容
html: '<b>發(fā)送時(shí)間:' + sendTime + '</b>',
// 附件內(nèi)容 是一個(gè)列表, 第一個(gè)是目錄下的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')
}],
};
// 發(fā)送郵件
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
console.log("郵件發(fā)送成功~");
});
});
運(yùn)行結(jié)果
- Gmail收到:
- 163郵箱收到(自己發(fā)給自己)
- qq郵箱收到
相關(guān)資源:
鏈接:https://pan.baidu.com/s/1Gk6zMO4_I2oWNvRlgzmfng 密碼:i3lu
小結(jié):
用郵件作為后端程序的預(yù)警是一個(gè)古老而有效的方法, 雖然nodemailer發(fā)郵件的代碼量,遠(yuǎn)大于三行代碼的yagmail,但nodemailer的通用性還是蠻強(qiáng)的, 推薦使用, 如果哪個(gè)小伙伴用更好用的nodejs發(fā)郵件的模塊, 歡迎在下方留言, 最后祝雙十一剁手愉快~