0

我正在 Linode 上部署一个 rails 应用程序。

这里有些奇怪。我为电子邮件设置了 gmail(例如,欢迎电子邮件)。如果我使用我的个人电子邮件注册,我可以正常接收电子邮件。但是如果我用我公司的邮箱注册,我就收不到(即使是垃圾邮件也收不到)。

我检查了 gmail 帐户(发送电子邮件)。事实证明,gmail 已正确发送所有电子邮件(我可以在已发送邮件中看到所有电子邮件)。

然后我尝试了本地机器的开发环境。我公司的邮箱可以收到欢迎邮件。

在我看来 1. 促销模式下的电子邮件设置没问题。至少我的个人帐户,例如 gmail、hotmail 可以收到欢迎电子邮件。2. 我公司的电子邮件服务器允许传入 gmail,因为在开发模式下它可以工作。

不太清楚为什么我公司的帐户无法在 linode 上以生产模式接收来自 rails 应用程序的电子邮件。是不是因为电子邮件是从 linode 发送的,所以我公司的电子邮件服务器会忽略来自这些 IP 地址的电子邮件?我以为电子邮件是由 gmail 服务器而不是 linode 发送的,理解是否正确?有没有人可以告诉我这里出了什么问题?

粘贴我的production.rb

# Send deprecation notices to registered listeners
config.active_support.deprecation = :notify
config.action_mailer.default_url_options = { :host => 'xxxxx.com' }
#config.action_mailer.delivery_method = :smtp
config.action_mailer.raise_delivery_errors = false
config.action_mailer.perform_deliveries = true
#config.action_mailer.default :charset => "utf-8"

和环境.rb

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings =
{
  :address => "smtp.gmail.com",
  :port => 587,
  :domain => "xxxxx.com",
  :user_name => "xxxxx@gmail.com",
  :password => "xxxxxx",
  :authentication => :plain,
  :enable_starttls_auto => true
}
4

3 回答 3

0

你设置环境变量了吗?例如,在您的 environment/production.rb 中应该有这样的东西。

config.action_mailer.default_url_options = { :host => "yourhost" }

于 2013-07-29T04:49:08.823 回答
0

一旦尝试在您的开发机器上以生产模式启动您的应用程序并在 production.rb 中设置

config.action_mailer.raise_delivery_errors = true

然后尝试再次发送电子邮件。

于 2013-07-29T06:11:45.893 回答
0

我知道这个问题已经有几年了,但我想我会发布对我有用的东西。这是我过去在我的 Linode 服务器上托管的 Rails 应用程序上从 Gmail 发送电子邮件的内容:

config/environments/production.rb

我在这里错过的第一部分是协议,将其设置为http

config.action_mailer.default_url_options = { host: 'HOST_NAME', protocol: 'http' }

下一个仍在config/environments/production.rb

config.action_mailer.default :charset => "utf-8"

最后,仍在config/environments/production.rb

config.action_mailer.smtp_settings = { :address => "smtp.gmail.com", :port => 587, :user_name => 'USERNAME@gmail.com', :password => 'PASSWORD', :domain => 'gmail.com', :authentication => 'plain', :enable_starttls_auto => true }

如果在这些更改之后仍然无法正常工作,请尝试config/initializers/devise.rb如下更改:

config.mailer_sender = 'SAME_EMAIL_AS_PRODUCTION@gmail.com'

确保 中给出的电子邮件config/initializers/devise.rb与 中给出的电子邮件相匹配config/environments/production.rb

希望这可以帮助某人。

于 2015-12-30T03:28:19.953 回答