如何在 NodeMailer 发送之前获取原始消息?

How to get raw message before it is sent by NodeMailer?

是否可以在发送之前从 NodeMailer 获取原始消息?我的目标是捕获格式正确的消息,以便我可以将其附加到 IMAP 已发送邮箱,而不是必须自己手动创建消息,这对我来说似乎没有必要。

您可以使用 Mailcomposer 创建原始 rfc822 消息的 readSreambuffer

1) 在您的脚本中需要 mailcomposer。它是 nodemailer 的一部分:

const MailComposer = require('nodemailer/lib/mail-composer')

2) 创建一个新的 MailComposer 实例:

var mail = new MailComposer(mailOptions)

其中 mailOptions 是定义邮件组件的对象,请参见下文。

3) 现在您可以创建读取流:

var mail = new MailComposer({from: '...', ...})
var stream = mail.compile().createReadStream()
stream.pipe(process.stdout)

或者您可以生成消息缓冲区:

var mail = new MailComposer({from: '...', ...})
mail.compile().build(function(err, result){
  process.stdout.write(result)
})

要了解有关邮件组成部分的更多信息,请查看 documentation of Mailcomposer