客户的网站是在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'
}
......没有任何有益的结果。
我的问题,如果不明显:如何阻止铁路发送重复的电子邮件?
答案 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
。干杯!