我想从我的Rails在Heroku上的应用程序发送电子邮件。 作为Heroku的不支持SMTP,我使用外部SMTP服务器。
配置/环境/ production.rb具有下列线路。
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:address => 'mydomain.com',
:port => 587,
:user_name => "myusername",
:password => "password",
:authentication => :plain,
:enable_starttls_auto => true,
:openssl_verify_mode => 'none'
}
当我从“Heroku的运行控制台”发送电子邮件,它工作正常。 不过,这并不从网站发送电子邮件。 奇怪的是,“Heroku的日志 - 尾”显示“已发送邮件...”。 实际上,电子邮件未送达。
有没有人有这个问题的任何想法?
谢谢。
山姆香港
你有没有在配置/ enviornment.rb试过这种
ActionMailer::Base.smtp_settings = {
:address => 'mydomain.com',
:port => 587,
:user_name => "myusername",
:password => "password",
:authentication => :plain,
:enable_starttls_auto => true,
:openssl_verify_mode => 'none'
}
你的配置是正确的。 但是,你必须把它在正确的环境文件。 在Heroku的部署的情况下,它应该是“生产”。 控制台的作品,因为它使用“发展”作为环境。 所以把在配置/环境/ production.rb下面的代码
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:address => 'mydomain.com',
:port => 587,
:user_name => "myusername",
:password => "password",
:authentication => :plain,
:enable_starttls_auto => true,
:openssl_verify_mode => 'none'
}
希望能解决你的问题。
如果它显示为邮件的发送,我会认为这是在您的邮件服务器可能阻止继电器从Heroku的IP范围内的配置问题 - 这是最奇怪的,虽然如果它致力于通过Heroku的控制台,而不是通过您的应用程序。
你有没有想过尝试SendGrid Heroku的插件只是为了缓解用自己的邮件服务器上的任何问题?