【问题标题】:Rails Devise Mailer: No Received Messages in InboxRails Devise Mailer:收件箱中没有收到的邮件
【发布时间】:2014-12-02 01:19:34
【问题描述】:

我正在使用 Rails 4 和 Devise 3。我需要发送确认电子邮件以进行生产。这些是我的 config/environments/production.rb 的 SMTP 配置

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

日志显示电子邮件已发送。但是,我在收件箱中看不到任何内容。 (是的,mailcatcher 已关闭)

另一个问题,开发文件的配置是否会以任何方式影响生产环境?他们不应该,对吗?

另一个重要的问题:使用上面的方法,可以处理多少封电子邮件?例如,如果我使用第三方说 Mandrill 会更好,因为可以处理多达数万封电子邮件。这种方式呢? P.S 我已经尝试过 Mandrill 并且效果很好。我被要求不要使用第三方,所以我将无法使用 Mandrill。

最后,还有其他我不知道的从 Rails Devise 发送确认电子邮件的方法吗?还是因为我不会使用第三方,所以我需要在 OUTSIDE OF RAILS 进行任何其他配置才能完成这项工作?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 devise smtp


    【解决方案1】:

    请确保您输入了正确的主机名。

    config.action_mailer.default_url_options = { :host => 'your domain name' }

    作为 Rails 配置标准,如果您的应用程序在本地机器上运行,它会加载开发环境。文件设置,如果是生产环境,则加载生产环境。文件设置。

    我更喜欢使用 MailChimp 的 sendgrid 或 Mandrill,如果您有大型应用程序,那么最好使用 3rd 方插件,对于小型应用程序,您可以使用 Gmail。

    希望对你有帮助:)

    【讨论】:

    • 我明白了。这很有帮助。所以在我实际部署我的 Rails 应用并为主机添加我的域名之前,我无法知道 Gmail 是否真的适用于生产环境,对吗?
    • 是的,在存储 Gmail 和任何其他凭据时要小心,请将其设置为您的 linux 或 mac OS bashrc 文件,不要将这些环境变量推送到 github 或任何存储库
    • 是的,我知道这一点。非常感谢您,我非常感谢您的帮助。我可能会向您提出更多问题,希望您不要介意。
    猜你喜欢
    • 1970-01-01
    • 2016-12-09
    • 2021-10-06
    • 2012-10-17
    • 1970-01-01
    • 2011-09-14
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    相关资源
    最近更新 更多