带有 Heroku 的 Rails 不发送 Mandrill 电子邮件

Posted

技术标签:

【中文标题】带有 Heroku 的 Rails 不发送 Mandrill 电子邮件【英文标题】:Rails with Heroku not sending Mandrill emails 【发布时间】:2014-01-28 10:46:39 【问题描述】:

我正在启动一个 Rails 应用程序,并希望使用 Mandrill 来确认 Devise 注册以及未来的其他功能。昨天它有时在本地工作,所以我想也许我会尝试 Heroku。

使用 Heroku 的 Mandrill 插件时它可以工作,但如果我将 ENV 凭据更改为我自己的 Mandrill 帐户,电子邮件就会积压在我自己的帐户中。

我正在使用两封个人电子邮件、gmail 和一封学校电子邮件对其进行测试。

我还使用 figaro 将我的环境变量复制到 Heroku。

production.rb:

config.action_mailer.smtp_settings = 
:address   => "smtp.mandrillapp.com",
:port      => 587,
:user_name => ENV["MANDRILL_USERNAME"],
:password  => ENV["MANDRILL_APIKEY"]


# ActionMailer Config
config.action_mailer.default_url_options =  :host => 'herokuapp.com' 
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = false

development.rb:

config.action_mailer.smtp_settings = 
:address   => "smtp.mandrillapp.com",
:port      => 2525, # I also tried ports 25 and 587
:user_name => ENV["MANDRILL_USERNAME"],
:password  => ENV["MANDRILL_APIKEY"]


# ActionMailer Config
config.action_mailer.default_url_options =  :host => 'localhost:3000' 
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true

application.yml:

(我复制了实际的用户名和 API 密钥。)

MANDRILL_USERNAME: myemail@gmail.com
MANDRILL_APIKEY: ######################
ADMIN_NAME: First User
ADMIN_EMAIL: user@example.com
ADMIN_PASSWORD: changeme 
ROLES: [admin, user, VIP]

Mandrill Heroku 为我提供的usernamesomething@heroku.com

【问题讨论】:

如果您仍然遇到此问题,请查看Can't get Mandrill to send emails from Rails App 和Using Mandrill's SMTP integration with Web Frameworks -- 端口587 为我工作,尽管我也将authentication 设置为plain ,并将enable_starttls_auto 设置为true 你确定吗,环境变量是从 application.yml 加载的,你也可以使用 config vars,看看这里devcenter.heroku.com/articles/config-vars 【参考方案1】:

对于面临同样问题的任何人。这是由 Mandrills 算法造成的,用于确定您在一段时间内允许发送多少封电子邮件。为了解决这个问题,我向他们的技术团队发送了电子邮件,他们能够提高限制。

【讨论】:

以上是关于带有 Heroku 的 Rails 不发送 Mandrill 电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

带有 master.key 的 Rails 5.2 - Heroku 部署

将带有 SQLite3 的 Rails 推送到 Heroku 失败 [重复]

邮件未在 rails 上使用 devise、heroku 和邮戳发送

Mailform 在本地工作,但不在生产环境中(Heroku、Rails)

Ruby on Rails 中的 Sendgrid / 电子邮件发送问题(托管在 Heroku 上)

使用带有 bootstrap-sass gem 的 Rails 4 无法让 CSS 在 Heroku 上工作