【问题标题】:Mail messages sent from nodemailer are not showing in user mail sent box从 nodemailer 发送的邮件消息未显示在用户邮件发送框中
【发布时间】:2017-05-29 14:04:03
【问题描述】:

我正在从我的域帐户发送消息,但它们没有显示在用户(来自 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);
    });

【问题讨论】:

  • @DanielNetto nope,不是您共享链接的副本//致 OP:我只是偶然发现了同样的问题。我的邮件也是通过 SMTP 发送的,我希望在该帐户的 webmailer 中找到已发送的邮件 - 但那里什么也没有。如果您有任何新发现,请分享。
  • @SebastianG.Marinescu 我误读了这个问题。既然您指出了这一点,我明白了 OP 的意思。您是否为您的帐户应用了任何过滤器?
  • @DanielNetto 谢谢,不-没有过滤器,什么都没有。看来我们期望这是徒劳的,应用程序可能应该单独保存发送的邮件..
  • 也有这个问题。使用来自 Thunderbird 的相同 SMTP 帐户信息发送的电子邮件会显示,但来自 Nodemailer 的电子邮件不会。这有什么更新吗?

标签: node.js nodemailer


【解决方案1】:

当您使用常规邮件客户端(例如 Thunderbird)发送邮件时,它会将邮件发送到您的 SMTP 服务器,然后该服务器将邮件中继到接收邮件服务器(也通过 SMTP)。但是,您已发送文件夹中的副本会通过 IMAP 额外保存在您的邮件服务器上。所以你的邮件实际上被发送了两次,一次到接收者的邮件服务器,然后一个副本被“发送”到你自己的邮件服务器。

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

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

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

  2. 将您自己的邮件地址作为密件抄送添加到所有外发邮件,并使用某种类型的服务器端过滤将它们自动移动到已发送文件夹。这对您的应用程序来说计算成本较低,但对邮件服务器有额外的过滤要求。

【讨论】:

    猜你喜欢
    • 2021-11-05
    • 2013-08-26
    • 2017-12-06
    • 1970-01-01
    • 2021-04-06
    • 2020-06-03
    • 1970-01-01
    • 2018-02-01
    • 2018-05-08
    相关资源
    最近更新 更多