如何确保我们的应用程序的邮件送达?

如何确保我们的应用程序的邮件送达?

我们有一个用于支持和帮助票的 Rails 应用程序。

当客户提交请求时,它会向客户发送确认电子邮件。当我们回复他们的请求时,它也会发送电子邮件。它不接收邮件。

上周,超过 25% 的客户没有收到回复。他们认为我们没有回复他们的工单(但实际上我们有回复)。

我对我的 @yahoo.com 帐户进行了测试,并在 mail.log 文件中发现了以下内容:

Jul  9 16:11:45 bighelp postfix/smtp[9051]: BF673324365: host b.mx.mail.yahoo.com[66.196.97.250] said: 451 Message temporarily deferred - [140] (in reply to end of DATA command)
Jul  9 16:11:45 bighelp postfix/smtp[9051]: BF673324365: to=<[email protected]>, relay=d.mx.mail.yahoo.com[68.142.202.247]:25, delay=0.73, delays=0.02/0.02/0.64/0.05, dsn=4.0.$

其他非雅虎地址也遇到这种情况。

Rails 应用程序在 Ubuntu 上运行,我们通过以下方式发送:

ActionMailer::Base.delivery_method = :sendmail

我确保该服务器不是开放中继。

我还能做些什么来确保我们的大多数电子邮件能够顺利发送?

答案1

此消息通常与灰名单有关(特别是雅虎,它似乎在某些时候对每个人都这样做)。基本上,邮件服务器会暂时推迟您的第一封邮件,合法的电子邮件服务器将看到此消息,等待一段时间,然后重试。发送垃圾邮件的服务器通常设置为只发送大量邮件然后忘记,因此它永远不会再尝试,因此垃圾邮件被丢弃。

为了确保您可以通过灰名单,请确保您的邮件服务器设置为延迟后再试一次,并给它一个合理的时间窗口,通常 10-20 分钟就足够了。

答案2

被其他邮件服务器暂时拒绝并不完全是不寻常的;您应该预料到这种情况会时有发生。

我认为大多数电子邮件提供商(免责声明:我只为一家公司工作)会更频繁地为“声誉不佳”的发件人暂时失败。我们这样做是为了有选择地优先为干净的邮件分配资源。如果您的服务器设法使其 IP 地址声誉不佳,则可能意味着邮件被归类为垃圾邮件,无论是由您的应用程序发送的,还是来自同一 IP 地址的其他邮件。

您绝对应该监控您的邮件队列。您可能应该对单个邮件发送进行一些审计,以便跟踪它们。

如果您看到大量邮件排队等待投递,则表明收件人的邮件服务器存在某种故障,或者他们以某种方式将您的邮件列入黑名单/降低其优先级。

具体如何做这些事情是特定于应用程序的。

在这种特殊情况下,您应该联系 Yahoo 的支持,假设您认为您肯定没有向他们发送垃圾邮件(来自同一 IP 的其他人也没有向他们发送垃圾邮件)。

答案3

您似乎在这里遇到了两个问题:

  1. 你的邮件系统目前情况如何
  2. 如何确保问题不再发生

WRT #1,我将进行以下检查:

  1. 我会设置您的服务器来接收邮件。无法接收退回邮件且似乎仅广播的系统通常会被标记为垃圾邮件。
  2. 检查你的 MX 记录,并检查你是否在黑名单中 -mxtoolbox.com
  3. 检查您的 RDNS 记录www.dnscolos.com
  4. 我会将 DomainKeys 添加到您的邮件服务器。
  5. 我建议添加 SPF 记录。它可以降低您的“垃圾邮件”分数,并可以防止垃圾邮件主机假装从您的域发送邮件。
  6. 发送电子邮件到[电子邮件保护]他们会回复一份包含各种垃圾邮件检查的报告。

WRT #2,我建议在您的电子邮件中包含一个透明的 gif 或一个特殊标记的徽标,以便“回电”到您的服务器。是的,这意味着您需要发送 HTML 电子邮件,是的,有些客户会默认阻止电子邮件检索图像,但是,您很快就会看到您的正常响应率,并能够检测到响应率是否下降。如果您有高价值客户,并且您可以看到他们可能没有收到您的回复,您可以主动打电话给他们。

答案4

您还应确保您的邮件服务器能够正确识别自身(如 mail.yourapp.com 或其他),并且存在将该 IP 链接到该名称的 PTR 记录。

此外,您可以添加 SPF 记录,允许该 IP/服务器为您的域发送邮件,这样至少它也可以获得 SPF:Pass。

相关内容