【问题标题】:Nodemailer direct transport blocked by recipient emailNodemailer 直接传输被收件人电子邮件阻止
【发布时间】:2018-02-15 22:34:12
【问题描述】:

我正在使用 nodemailer 和直接传输来发送电子邮件。电子邮件已成功发送,但被收件人的防火墙间歇性阻止,并且从未进入收件人的电子邮件收件箱。

这是我发送 nodemailer 电子邮件的代码:

var nodemailer = require('nodemailer'),
var transport = nodemailer.createTransport(sendmail());
var mailOptions = {
    to: 'recipient@email.com',
    from: 'Sender <sender@blah.com>',
    subject: 'Subject',
    html: 'html'
};
transport.sendMail(mailOptions, function(err, info) {});

当我将我的 to 更改为 @gmail.com 电子邮件时,我的邮件是通过发送的。我不确定收件人防火墙是如何配置的,但我有没有办法增加我的电子邮件通过的机会?

请注意,我发送出去的blah.com 电子邮件域from 实际上并不是注册域。我在localhost 上托管了我的服务器。是否可以在 AWS 上托管、注册域 blah.com 并添加 MX 记录以某种方式增加我的电子邮件被发送的机会?

【问题讨论】:

    标签: node.js email dns smtp nodemailer


    【解决方案1】:

    这是从诸如 blah.com 之类的域发送邮件时通常会发生的情况,

    1. 邮件已发送
    2. "to address" smtp 服务器获取邮件
    3. 检查blah.com的spf记录和邮件的dkim签名
    4. 如果 blah.com dns 包含允许您代表该域发送的 spf 记录,则您通过了第一个测试。
    5. 如果您的邮件使用 dkim 正确签名,则您通过了第二次测试
    6. 然后 smtp 服务器会检查您的发送 ip 是否已被列入垃圾邮件黑名单,如果没有,则您通过第三次也是最后一次测试。
    7. 如果所有邮件参数都按顺序排列,则它将邮件转发给收件人。

    在您的情况下发生的情况是未设置第 3 步,因此您无法成功发送邮件。使用 3rd 方服务发送邮件会容易得多,因为他们几乎会在整个过程中握住您的手并为您签署所有邮件。

    因此,您要么需要自己实施这些标准,要么需要使用第三方来提高交付能力。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-02
      • 1970-01-01
      • 2019-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多