定時傳送,可做提醒使用
nodemailer
nodemailer 是一款簡單易用的基於於SMTP協議(或 Amazon SES)的郵件傳送元件
cron
cron可以指定每隔一段時間執行指定的程式、也可以指定每天的某個時刻執行某個程式、還可以按照星期、月份來指定。
具體描述
npm install nodemailer -S
npm install nodemailer-smtp-transport -S
npm install cron -S
程式碼中有詳細的註釋
let nodemailer = require(`nodemailer`),
smtpTransport = require(`nodemailer-smtp-transport`),
cronJob = require(`cron`).CronJob;
// SMTP 連線
let transport = nodemailer.createTransport(smtpTransport({
// 主機
host: `smtp.163.com`,
// 是否使用 SSL
secure: false,
secureConnection: false,
// 網易的SMTP埠
port: 25,
auth: {
// 賬號
user: `***@163.com`,
// 授權碼(自行百度郵箱SMTP的授權碼設定),此處非密碼
pass: `***`,
}
}));
// 設定郵件內容
let mailOptions = {
// 發件人地址,例如 1234<1234@163.com>
from: `***<***@163.com>`,
// 收件人地址,可以使用逗號隔開新增多個
// `***@qq.com, ***@163.com`
to: `***@qq.com`,
// 標題
subject: `Hello World`,
// 郵件內容可以自定義樣式
html: `<strong style="color: red">測試"郵件轟炸機"</strong>`
}
// 定時傳送郵件
// 每秒執行一次
// 具體的各項設定檢視上方的連結
new cronJob(`* * * * * *`, () => {
transport.sendMail(mailOptions, (error, response) => {
if (error) {
console.error(error)
} else {
console.log(`Message Send Ok`)
}
// 記得關閉連線
transport.close();
})
}, null, true, `Asia/Shanghai`);