作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在从我的域帐户发送消息,但它们没有显示在用户(来自 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);
});
最佳答案
当您使用常规邮件客户端(如 Thunderbird)发送邮件时,它会将邮件发送到您的 SMTP 服务器,然后该服务器将邮件中继到接收邮件服务器(也通过 SMTP)。但是,已发送文件夹中的副本会通过 IMAP 额外保存在您的邮件服务器上。所以你的邮件实际上是发送了两次,一次是发送到接收者的邮件服务器,另一次是“发送”到你自己的邮件服务器。
当使用 nodemailer 时,您只需提供您的 SMTP 服务器的凭据,因此邮件只会被发送,而不会在您的发送目录中存储副本。所以这基本上是按预期工作的。
我可以想到两种方法将邮件副本保存在已发送目录中:
使用附加库,例如 node-imap
来模仿常规邮件客户端的行为并手动保存邮件副本(例如,node-imap
有一个 append
方法来保存新邮件)。
将您自己的邮件地址作为 BCC 添加到所有外发邮件中,并使用某种类型的服务器端过滤将它们自动移至已发送文件夹。这对您的应用程序来说计算成本较低,但对邮件服务器有额外的过滤要求。
关于node.js - 从 nodemailer 发送的邮件消息未显示在用户邮件发件箱中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41647497/
我是一名优秀的程序员,十分优秀!