如何在 NodeMailer 发送之前获取原始消息?
How to get raw message before it is sent by NodeMailer?
是否可以在发送之前从 NodeMailer 获取原始消息?我的目标是捕获格式正确的消息,以便我可以将其附加到 IMAP 已发送邮箱,而不是必须自己手动创建消息,这对我来说似乎没有必要。
您可以使用 Mailcomposer
创建原始 rfc822 消息的 readSream
或 buffer
。
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
是否可以在发送之前从 NodeMailer 获取原始消息?我的目标是捕获格式正确的消息,以便我可以将其附加到 IMAP 已发送邮箱,而不是必须自己手动创建消息,这对我来说似乎没有必要。
您可以使用 Mailcomposer
创建原始 rfc822 消息的 readSream
或 buffer
。
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