ActionMailer发送的电子邮件需要六个小时才能发送邮件

时间:2010-03-26 20:40:26

标签: ruby-on-rails ruby ruby-on-rails-plugins sendmail

所以我被要求帮助维护一个使用Ruby on Rails的网站。现在,我只想说我已经编程了Ruby一段时间,但我还是Rails的新手。引起我注意的第一个问题是激活电子邮件大约需要六个小时才能到达。如果由于错误而没有发送电子邮件但是它正在正确发送,只是很慢,那将是一回事。运行它的服务器也是它自己的SMTP。我在调用setup_email方法之前检查了电子邮件的格式,一切看起来还不错。我甚至挖到ActionMailer lib并读取那里的文件,并没有看到任何异常的东西。那么什么最有可能导致电子邮件需要六个小时才能完成?

编辑: 我尝试过Roadmaster的想法并注意到了一些奇怪的事情。虽然正常的电子邮件发送似乎有正常的延迟记录在日志中(例如“延迟= 0.99,延迟= 0.08 / 0.01 / 0.19 / 0.7”),我注意到多个电子邮件尝试发送电子邮件到blah@blah.com 。由于无法找到这样的主机,因此所有这些都有所不同。但是与它们相关的延迟要大得多(例如“延迟= 239853,延迟= 239818 / 0.02 / 35/0”)。现在这听起来更像是Rails代码中的一个问题,而不是sendmail配置问题,但我刚开始维护这个站点。哪个地方可能会开始寻找?

1 个答案:

答案 0 :(得分:1)

您可以访问服务器的邮件日志吗?如果它是Unix服务器,它们可能在/ var / log中。您可能会发现有关正在发生的事情的线索。这就是我要做的事情:

  1. 找到SMTP服务器日志(sendmail,exim,postfix等)。
  2. 使用tail -f whatever.log来关注日志。将其保留在终端中。
  3. 进入您的应用并执行触发发送激活电子邮件所需的任何步骤。
  4. 检查您正在查看日志的窗口,看看会发生什么。
  5. ActionMailer 本身不应该引入那么大的延迟(尽管在发送邮件时它不是速度恶魔,但它应该在不到1-2秒的时间内处理所有内容),所以它可能是堆栈的其他部分,甚至收件人端的问题/过滤器/灰名单。