如何使用Nodemailer在密件抄送中发送电子邮件

时间:2019-08-27 12:59:47

标签: nodemailer

让我们说我想通过bcc@xyz.com发送电子邮件到receive@xyz.com。

当bcc@xyz.com收到一封电子邮件时,他应该会看到收件人@ xyz.com和bcc中的bcc@xyz.com。

但是,当bcc@xyz.com收到电子邮件时,他看不到收件人。

我尝试使用邮件编辑器(而不是传输工具)创建和发送电子邮件,但是它无法正常工作。

我也尝试了cc,但是cc不能按预期工作。

const nodemailer = require('nodemailer');
const testAccount = await nodemailer.createTestAccount();
const transporter = nodemailer.createTransport({
    host: "smtp.ethereal.email",
    auth: {
        user: testAccount.user,
        pass: testAccount.pass
    },
    tls: { rejectUnauthorized: false }
});

const mailData = {
    from: 'xyz@xyz.com',
    to: 'recipient@xyz.com',
bcc: 'bcc@xyz.com'
    subject: 'Sample Mail',
    html: text
}

const result = await transporter.sendMail(mailData);

console.log('Mail Sent! \t ID: ' + result.messageId);

我希望 bcc@xyz.com 看到 recipient@xyz.com

1 个答案:

答案 0 :(得分:2)

请参见envelope

SMTP信封通常是从邮件对象中的“抄送”,“收件人”,“抄送”和“密件抄送”字段自动生成的,但是如果出于某些原因要自己指定(自定义信封通常用于VERP地址),则可以使用邮件对象中的信封属性。

let message = {
  ...,
  from: 'mailer@nodemailer.com', // listed in rfc822 message header
  to: 'daemon@nodemailer.com', // listed in rfc822 message header
  envelope: {
    from: 'Daemon <deamon@nodemailer.com>', // used as MAIL FROM: address for SMTP
    to: 'mailer@nodemailer.com, Mailer <mailer2@nodemailer.com>' // used as RCPT TO: address for SMTP
  }
}

在您的情况下,以下mailData应该可以完成工作:

const mailData = {
    from: 'xyz@xyz.com',
    to: 'recipient@xyz.com',
    bcc: 'bcc@xyz.com',
    subject: 'Sample Mail',
    html: text,
    envelope: {
        from: 'xyz@xyz.com',
        to: 'recipient@xyz.com'
    }
}