【问题标题】:Rails ActionMailer not sending emails in production; no errorsRails ActionMailer 不在生产环境中发送电子邮件;没有错误
【发布时间】:2013-08-29 14:48:41
【问题描述】:

此代码在开发中完美运行,电子邮件永远不会到达生产环境,即使它们具有相同的配置。

配置:

  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.default_url_options = { :host => 'domain.com' }
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.perform_deliveries = true
  config.action_mailer.smtp_settings = {
    :address => "smtp.gmail.com",
    :port => 587,
    :authentication => :plain,
    :user_name => 'my_server@gmail.com',
    :password => 'secret',
    :enable_starttls_auto => true
  }

发送电子邮件:

logger.warn "before mail call"
logger.warn ActionMailer::Base.smtp_settings
logger.warn(mail(to: "my_email@gmail.com", subject: "Testing", body: "email body").deliver!)

服务器日志:

[2013-08-29 16:41:11.000] [WARN] -- before mail call
[2013-08-29 16:41:11.000] [WARN] -- {:address=>"smtp.gmail.com", :port=>587, :authentication=>:plain, :user_name=>"my_server@gmail.com", :password=>"secret", :enable_starttls_auto=>true}
[2013-08-29 16:41:11.000] [WARN] -- Date: Thu, 29 Aug 2013 16:41:11 +0200
From: my_server@gmail.com
To: my_email@gmail.com
Message-ID: <521f5d87537af_7af3da480050052@castillo05.fzi.de.mail>
Subject: Testing
Mime-Version: 1.0
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

email body

在我的本地主机上进行开发时,它运行良好。电子邮件几乎立即到达。在生产过程中,电子邮件永远不会到达,我也没有收到任何错误。我已经尝试了很多设置组合(有/没有:enable_starttls_auto、:domain、不设置delivery_method、perform_deliveries等),到目前为止没有任何效果。我也尝试发送到其他电子邮件但没有成功。

有什么想法吗?非常感谢提前

【问题讨论】:

  • 你解决过这个问题吗?有同样的问题。
  • @GeorgeMillo 是的,这实际上是一个非常愚蠢的错误。 config.action_mailer.delivery_method 在文件末尾被覆盖到 test,因此没有发送任何内容。

标签: ruby-on-rails actionmailer


【解决方案1】:

尝试将发件人地址(即有效的电子邮件地址)添加到您的邮件设置中。由于这个原因,我以前曾阻止过电子邮件。也许像管理员@您的网站托管的域名之类的东西?

mail(to: "my_email@gmail.com", subject: "Testing", body: "email body", from: "me@mydomainname.com").deliver!

【讨论】:

  • 我试过你的建议,但也没有用。我不应该在某个地方出错吗?
  • 好吧,它在开发中工作并且不会出错,这表明它并不是真正的动作邮件问题,它更有可能与服务器有关 - 要么是阻止或无法发送电子邮件。您有可以联系的服务器管理员吗?
【解决方案2】:

从您的日志来看,您在代码部门的工作似乎是正确的。 问题可能出在您的 SMTP 设置中。

特别是http://email.about.com/od/accessinggmail/f/Gmail_SMTP_Settings.htm这个帖子说gmail使用的smtp端口是465,我看你用的是587。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    • 2023-04-02
    • 2021-03-21
    • 1970-01-01
    • 2014-12-31
    • 2016-10-11
    • 2016-03-20
    相关资源
    最近更新 更多