如何确保我们的应用程序的邮件传递?

Cal*_*eed 1 email linux ubuntu sendmail ruby-on-rails

我们有一个用于支持和帮助票的 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=<erik.dungan@yahoo.com>, 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.$
Run Code Online (Sandbox Code Playgroud)

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

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

ActionMailer::Base.delivery_method = :sendmail
Run Code Online (Sandbox Code Playgroud)

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

我还能做些什么来确保我们的大部分电子邮件都能通过?

Sam*_*gan 5

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

为确保您可以通过灰名单,请确保您的邮件服务器设置为在延迟后重试,并为其提供合理的时间窗口,通常 10-20 分钟就足够了。