我有一个外部smtp服务器,我用于动作管理器。我在开发和生产配置中都有完全相同的action_mailer配置。它在开发中完美运行,但是当我在heroku上运行它时我没有出现任何错误,它说“发送邮件到me@gmail.com”然后测试帐户永远不会收到电子邮件(甚至检查垃圾邮件文件夹) )。
这大致是我的配置说的:
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.smtp_settings = {
:address => "mail.server.com",
:port => 25,
:domain => "server.com",
:user_name => "no-reply@server.com",
:password => "password",
:authentication => :login,
:enable_starttls_auto => true
}
有什么想法吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
如果您使用deyaled_jobs发送电子邮件,则可能需要向应用程序添加工作人员dyno。即使你不是,也可能值得一试,看看它是否解决了你的问题。
答案 2 :(得分:0)
我使用godaddy进行smtp传递。首先,这是我的特定设置:
:address => 'smtpout.secureserver.net',
:port => 3535,
:domain => 'www.neeis.com',
:authentication => :plain,
:user_name => 'user@neeis.com',
:password => 'password'
但是!如果问题仅在电子邮件来自gmail.com时发生,那么godaddy阻止它,可能与垃圾邮件有关。所以这就是我如何解决这个问题,在我的邮件中我有这样的事情:
begin
EmployeeMailer.emailtoemp(@message).deliver
rescue
EmployeeMailer.emailtoempforce(@message).deliver
end
因此,如果第一次尝试发送带有from ='somebody@gmail.com'的电子邮件失败,我会尝试使用from ='webmaster@mysite.com'发送它,并且我将地址嵌入到电子邮件的正文。这不是一个完美的解决方案,这些是从我的Web用户到我的员工生成的电子邮件。很多时候,员工不会注意到来自地址,只需点击回复,他们就会给我发电子邮件,网站管理员。
答案 3 :(得分:0)
首先尝试使用端口587而不是25。
如果这不起作用,快速修复将使用Heroku Sendgrid plugin。如果您每天发送少于200封电子邮件,则免费。