我们一直在rails应用程序上使用发送网格邮件服务向我们的用户发送邮件。我们的应用托管在Heroku
服务器上,但只要rails尝试向我们的用户发送电子邮件,就会出现内部错误。
我查看了Heroku Logs,错误是
在63毫秒内完成500内部服务器错误(ActiveRecord: 11.1ms)2017-08-24T11:28:03.914063 + 00:00 app [web.1]:Errno :: ECONNREFUSED(连接被拒绝 - 连接(2)为零端口25):
在production.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
变量上的域设置,因为登台服务器和生产服务器上的域名将不同。
答案 0 :(得分:0)
您显示的连接拒绝错误是针对端口25,这是默认的SMTP端口。
似乎您的配置未被使用。您确定在生产环境中运行(而不是说开发)并且这些设置没有被任何其他配置文件覆盖,或者基于每个电子邮件被覆盖?
如果找不到问题,使用Rails控制台手动发送电子邮件并检查其所有配置可能很有用。