1

我有一个用于 actionmailer 的外部 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
}

有任何想法吗?

4

4 回答 4

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' 发送它,并将发件人地址嵌入到正文中电子邮件。这不是一个完美的解决方案,这些是从我的网络用户发送给我的员工的电子邮件。很多时候,员工不会注意到发件人地址,只需单击回复,他们就会给我发电子邮件,网站管理员。

于 2012-09-18T21:44:27.790 回答
0

查看https://devcenter.heroku.com/articles/smtp

尝试删除

 :enable_starttls_auto => true

从您的 smtp 配置块

于 2012-09-17T23:37:11.423 回答
0

如果您使用 deyaled_jobs 发送电子邮件,您可能需要在您的应用程序中添加工作人员测功机。即使您不是,也值得一试,看看它是否能解决您的问题。

于 2012-09-18T02:08:44.217 回答
0

首先尝试使用端口 587 而不是 25。

如果这不起作用,则可以使用Heroku Sendgrid 插件进行快速修复。如果您每天发送的电子邮件少于 200 封,则它是免费的。

于 2012-09-19T21:35:51.310 回答