【问题标题】:Rails 5 app in Heroku won't send an email setup with gmalHeroku 中的 Rails 5 应用程序不会使用 gmail 发送电子邮件设置
【发布时间】:2018-01-02 19:50:53
【问题描述】:

我卡住了,在网上找不到任何帮助:

我正在尝试发送有关用户注册的电子邮件,并且我有相同的配置正在开发中,但我找不到让它在 heroku 中工作的方法

config.action_mailer.default_url_options = { host: 'www.hiddendomain.com' }
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp

  config.action_mailer.smtp_settings = {
    :address => "smtp.gmail.com",
    :port => 587,
    :authentication => :plain,
    :domain => ENV['GMAIL_SMTP_USERNAME'],
    :user_name => ENV['GMAIL_SMTP_USERNAME'],
    :password => ENV['GMAIL_SMTP_PASSWORD'],
  }

  config.action_mailer.perform_deliveries = true

错误:

2017-07-27T07:41:45.175561+00:00 app[web.1]: I, [2017-07-27T07:41:45.175497 #4]  INFO -- : [a6ec5129-53a4-420a-b319-9cc6d61cff16] Completed 500 Internal Server Error in 544ms (ActiveRecord: 9.0ms)

2017-07-27T07:41:45.175719+00:00 app[web.1]: F, [2017-07-27T07:41:45.175664 #4] FATAL -- : [a6ec5129-53a4-420a-b319-9cc6d61cff16]

2017-07-27T07:41:45.175791+00:00 app[web.1]: F, [2017-07-27T07:41:45.175729 #4] FATAL -- : [a6ec5129-53a4-420a-b319-9cc6d61cff16] EOFError (end of file reached):

2017-07-27T07:41:45.175853+00:00 app[web.1]: F, [2017-07-27T07:41:45.175794 #4] FATAL -- : [a6ec5129-53a4-420a-b319-9cc6d61cff16]

2017-07-27T07:41:45.175923+00:00 app[web.1]: F, [2017-07-27T07:41:45.175866 #4] FATAL -- : [a6ec5129-53a4-420a-b319-9cc6d61cff16]

与开发环境的唯一区别是宿主行:

config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }

【问题讨论】:

    标签: ruby-on-rails ruby heroku smtp ruby-on-rails-5


    【解决方案1】:

    在你的配置中是行

    :domain => ENV['GMAIL_SMTP_USERNAME']
    

    这是错误的,因为您在字段用户名中有一些环境变量。域应该是“gmail.com”,因为您使用的是来自 gmail.com 的 gmails 邮件服务:

    config.action_mailer.smtp_settings = {
      :address => "smtp.gmail.com",
      :port => 587,
      :authentication => :plain,
      :domain => "gmail.com",
      :user_name => ENV['GMAIL_SMTP_USERNAME'],
      :password => ENV['GMAIL_SMTP_PASSWORD'],
    }
    

    【讨论】:

      【解决方案2】:

      某些应用和设备使用安全性较低的登录技术,请开启允许安全性较低的应用。 请转到我的 gmail 帐户:https://myaccount.google.com/lesssecureapps 并打开允许不太安全的应用过滤器

      【讨论】:

      • 你能把邮件代码完全粘贴到这里吗?是否有可能缺少结束块?。
      【解决方案3】:

      问题可能在于 gmail 对通过第三方应用程序发送电子邮件有严格的选择。您需要为您的 gmail 帐户启用此选项。

      确保在 Access 下为不太安全的应用选择了 Enable。

      【讨论】:

        猜你喜欢
        • 2017-10-06
        • 2015-07-31
        • 2016-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-06
        相关资源
        最近更新 更多