天天看點

nodejs發送郵件,批量發送附件

nodejs自動發送檔案 ,把目錄中檔案批量發送附件

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)      

繼續閱讀