【发布时间】:2017-08-24 11:35:10
【问题描述】:
我们一直在我们的 rails 应用上使用发送网格邮件服务来向我们的用户发送邮件。我们的应用托管在 Heroku 服务器上,但是一旦 rails 尝试向我们的用户发送电子邮件,就会出现内部错误。
我查看了 Heroku 日志,错误是
在 63 毫秒内完成 500 内部服务器错误(ActiveRecord: 11.1ms)2017-08-24T11:28:03.914063+00:00 app[web.1]: Errno::ECONNREFUSED(连接被拒绝 - connect(2) 用于 nil 端口 25):
在生产中.rb
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.smtp_settings = {
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
:domain => ENV['DOMAIN'],
:address => 'smtp.sendgrid.net',
:port => 587,
:authentication => :plain,
:enable_starttls_auto => true
}
我们在服务器上使用了SendGrid heroku 插件,所以ENV 设置正常。
domain: ENV['DOMAIN'] 指向 ENV 变量上的域设置,因为域在暂存服务器和生产服务器上会有所不同。
【问题讨论】:
标签: ruby-on-rails heroku sendgrid