Heroku上的Rails发送重复的电子邮件

时间:2013-01-03 17:18:20

标签: ruby-on-rails email duplicates mailer

客户的网站是在Rails 3中构建的,并在Heroku上托管,并接受通过rails邮件发送的表单提交。他们正在接收重复的电子邮件。我无法在开发环境中复制该问题。

邮件通过使用标准rails邮件注册到其域的Gmail帐户发送:

ActionMailer::Base.smtp_settings = {
  :address              => "smtp.gmail.com",
  :port                 => 587,
  :domain               => "clientdomain.com",
  :user_name            => "noreply@clientdomain.com",
  :password             => "password",
  :authentication       => "plain",
  :enable_starttls_auto => true
}

(gather data)
mail(:to => "staff@clientdomain.com", :subject => "Form Submittal", :from => @email)

重复不一定立即发送,因为它们的传送时间从原来的1分钟到超过3小时不等。

在某些情况下,HTML字符会被实体替换。

以下是一个例子:

From: noreply@clientdomain.com
> Subject: Form Submittal
> Date: December 14, 2012 10:38:18 PM EST
> To: staff@clientdomain.com
>=20
> Form Submittal
>=20
> Name: Potential Lead
>=20
> Phone: 1234567890
>=20
> Email: some.user@gmail.com 
>=20
> Message: Hi my names Some I'm from tennesse and I'd really like to =
> get info on your service thank you for all your help!!!
>=20

并重复:

> From: noreply@clientdomain.com
> Subject: Form Submittal
> Date: December 15, 2012 1:46:54 AM EST
> To: staff@clientdomain.com
>=20
> Form Submittal
>=20
> Name: Potential Lead
>=20
> Phone: 1234567890
>=20
> Email: some.user@gmail.com
>=20
> Message: Hi my names Some I%27m from tennesse and I%27d really like =
> to get info on your service thank you for all your help%21%21%21
>=20

我很想将表格提交两次,但3小时后提交完全相同的输入,以及大量的欺骗(60-75%有时报告,但从不100%)是不可靠的让我对此持高度怀疑。

我还找到了一个关于重复问题的要点,指示我用这个覆盖默认设置:

config.action_mailer.sendmail_settings = {
  :arguments => '-i'
}

......没有任何有益的结果。

我的问题,如果不明显:如何阻止铁路发送重复的电子邮件?

1 个答案:

答案 0 :(得分:0)

对于任何从谷歌来到这里有同样问题的人,这里有解决方案: 如果您使用延迟作业来安排此处https://stackoverflow.com/a/13000167/1870446和此处https://github.com/collectiveidea/delayed_job#rails-3-mailers

中最初说明的邮件,请不要使用.deliver

因此,您应该使用UserMailer.delay.some_mail.deliver而不是UserMailer.delay.some_mail。干杯!