クライアントのWebサイトはRails3に組み込まれており、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
フォームが2回送信されただけだと思いたくなりましたが、3時間後にまったく同じ入力を送信する可能性は低く、大量の重複(60〜75%が報告されることもありますが、100%になることはありません)と相まって、非常に高くなります。それには懐疑的です。
また、重複する問題についての要点を見つけました。これにより、デフォルト設定を次のようにオーバーライドするように指示されました。
config.action_mailer.sendmail_settings = {
:arguments => '-i'
}
...有益な結果はありません。
私の質問は、明白ではないにしても、レールが重複した電子メールを送信するのを防ぐ方法は?