从nodemailer发送的邮件消息未显示在用户邮件发送框中

时间:2017-01-14 06:40:37

标签: node.js nodemailer

我正在从我的域帐户发送邮件但它们没有显示在用户(来自nodemailer的选项)发送的框中。但是当从gmail服务邮件发送邮件时,会在用户的已发送框中显示。我在下面的代码中遗漏了一些内容?

var transport = nodemailer.createTransport({
    host: "xxxx.domain.com",
    auth: {
        user: 'xyx',
        pass: '123'
    }
});
transport.sendMail(options, function (err, info) {
        if (err) {
            console.log(err)
        }
        console.log(info);
    });

1 个答案:

答案 0 :(得分:3)

使用诸如Thunderbird之类的常规邮件客户端发送邮件时,它将把邮件发送到SMTP服务器,然后SMTP服务器将邮件中继到接收邮件服务器(也通过SMTP)。但是,已发送文件夹中的副本还通过IMAP保存在邮件服务器上。因此,您的邮件实际上被发送了两次,一次发送到了接收者的邮件服务器,而副本被“发送”到了您自己的邮件服务器。

使用nodemailer时,您仅提供SMTP服务器的凭据,因此仅发送邮件而未在发送目录中存储副本。因此,这基本上可以按预期工作。

我可以想到两种在发送目录中保存邮件副本的方法:

  1. 使用附加的库,例如node-imap来模仿常规邮件客户端的行为并手动保存邮件副本(例如,node-imap具有append保存新邮件的方法)。

  2. 将您自己的邮件地址作为密件抄送添加到所有外发邮件中,并使用某种类型的服务器端筛选将它们自动移动到已发送的文件夹中。对于您的应用程序而言,这在计算上较便宜,但是对邮件服务器具有额外的过滤要求。