nodejs自動發送檔案 ,把目錄中檔案批量發送附件
- main.js
const nodemailer = require('nodemailer')
const fs = require('fs')
const path = require('path')
const dir = './files'
// 使用async..await 建立執行函數
async function main() {
// 如果你沒有一個真實郵箱的話可以使用該方法建立一個測試郵箱
// let testAccount = await nodemailer.createTestAccount()
// 建立Nodemailer傳輸器 SMTP 或者 其他 運輸機制
let transporter = nodemailer.createTransport({
host: 'smtp.126.com', // 第三方郵箱的主機位址
port: 25,
secure: false, // true for 465, false for other ports
auth: {
user: '[email protected]', // 發送方郵箱的賬号
pass: 'axsdsadsadas', // 郵箱授權密碼
},
})
// 定義transport對象并發送郵件
sendFiles(transporter)
}
function sendFiles(transporter) {
fs.readdir(dir, function (err, files) {
// console.log(files)
if (err) throw err
files.forEach(async function (file) {
// console.log(path.resolve(dir, file))
// console.log('send mail', file)
const res = await transporter.sendMail({
from: '"AAA" <[email protected]>', // 發送方郵箱的賬号
to: '[email protected]', // 郵箱接受者的賬号
subject: file, // Subject line
text: '', // 文本内容
attachments: [
{
filename: file, // 附件名稱
content: fs.createReadStream(path.resolve(dir, file)),
},
],
})
console.log('File sent [ %s ] Ok! : %s', file, res.messageId)
})
})
}
main().catch(console.error)