【问题标题】:Rails Gmail contact form - works on localhost but not when deployed to HerokuRails Gmail 联系表 - 在本地主机上工作,但在部署到 Heroku 时不工作
【发布时间】:2017-03-10 22:28:09
【问题描述】:

我遇到了一个奇怪的问题,我正在编写 GMAIL 联系表单 - 它将使用现有的 Gmail 用户名和密码向预先指定的 Gmail 帐户发送电子邮件。

我遇到的问题是,当我在本地运行所有内容时,它工作得很好。另一方面,一旦我部署到Heroku...我没有收到消息。当我运行时:heroku logs -t 似乎表明消息已发送,但仍然没有任何消息通过。

配置:

ActionMailer::Base.default_url_options = { :host => 'domain.herokuapp.com' }  
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.smtp_settings = {
  :address              => "smtp.gmail.com",
  :port                 => 587,
  :enable_starttls_auto => true,
  :domain             => 'domain.herokuapp.com',
  :user_name            => ENV['GMAIL_USERNAME'],
  :password             => ENV['GMAIL_PASSWORD'],
  :authentication       => "login"
}

注意:

domain.herokuapp.com 刚刚被替换为我的实际域。

服务器日志截图:

有没有人知道为什么这不起作用或可以向我指出一个资源来解决这个问题?

【问题讨论】:

  • 你的环境变量是否存在于heroku服务器上? ENV['GMAIL_USERNAME']ENV['GMAIL_PASSWORD']
  • @BorisBresciani 是的,我所有的环境变量都在 Heroku 上
  • 你有更新吗?

标签: ruby-on-rails ruby heroku


【解决方案1】:

我有一个类似的问题,它连接到我的 config/enfironments/production.rb 文件中的配置

config.action_mailer.default_url_options = { host: 'http://barteringapps.herokuapp.com' }

我可以通过更改地址来解决这个问题。在开发中它应该是http://127.0.0.1:3000,而它应该是你在生产中的域。

另外你的 gmail 域名不正确,你应该有gmail.com 作为域名

config.action_mailer.smtp_settings = {
  address: "smtp.gmail.com",
  port: 587,
  domain: ENV["GMAIL_DOMAIN"],
  authentication: "plain",
  user_name: ENV["GMAIL_USERNAME"],
  password: ENV["GMAIL_PASSWORD"],
  enable_starttls_auto: true
  }

我关注了这篇文章,但在配置 default_url_options 时要小心,因为它会给我的 facebook omniauth 带来问题

https://rubyonrailshelp.wordpress.com/2014/01/02/setting-up-mailer-using-devise-for-forgot-password/

【讨论】:

  • 不,这似乎不是问题。我试过你的方法,效果还是一样
  • @jdave 不是gmail帐户的问题吗?您是否允许安全性较低的应用程序?support.google.com/accounts/answer/6010255?hl=en您的 gmail 帐户没有发送任何电子邮件?您是否更改了域?
  • @jdave 是您的域名 www.jaycdave.com 吗?正如我所说,我正在使用 gmail.com,如果您的域是上述域,您可以尝试删除 www. 吗?
猜你喜欢
  • 2020-08-25
  • 1970-01-01
  • 1970-01-01
  • 2023-01-11
  • 2014-08-25
  • 1970-01-01
  • 2021-12-01
  • 2020-06-10
  • 2015-07-24
相关资源
最近更新 更多