1

ユーザーがオンライン ストアで注文を完了すると、確認メールが届きます。

現在、ユーザーのクレジット カードを認証した後、確認メッセージを表示する前に (つまり、同期的に)、このメールを Gmail 経由で送信しています (移植性を高めるために sendmail を選択しました)。

開発では問題なく動作していますが、これが本番で問題を引き起こすのではないかと思っています。ユーザーを長時間待たせる必要がありますか? 多くの同時 Gmail 接続が問題になりますか? その他の一般的な注意事項はありますか?

電子メールを同期的に送信することが問題になる場合、誰かが非同期ソリューションを推奨できますか ( ar_mailerは良いですか?)

4

4 に答える 4

2

私が考えることができる主な問題は、Gmail は 1 日に送信できるメールの量を制限しているため、1 日に大量の注文を受け取ると機能しなくなる可能性があることです。

彼らが言うように :

「スパムと闘い、悪用を防ぐため、500 人を超える受信者にメッセージを送信した場合、または大量の配信不能メッセージを送信した場合、Google はアカウントを一時的に無効にします。POP または IMAP クライアント (Microsoft Outlook またはApple Mail の例)、一度に 100 人にしかメッセージを送信できません。アカウントは 24 時間以内に再度有効にする必要があります。」

http://mail.google.com/support/bin/answer.py?hl=ja&answer=22839

特にsendmailの設定がそれほど複雑でない場合は、何が起こっているのかをより細かく制御し、別のサービスに依存しないために、サーバーでsendmailを使用することをお勧めします。

于 2009-04-21T16:14:33.330 に答える
1

インターネットは、一部の人々が信じているほど回復力がありません。あなたと GMail の間のリンクは、ある時点で切断されるか、GMail がオフラインになり、ユーザーは支払いが正常に行われていないと考えるようになります。

sendmail は受け入れられるように思えますが、将来ホストされる可能性があるサイトを今すぐ作成することはできません。

ライアン

于 2009-04-21T16:16:17.913 に答える
1

サーバーがユーザーにフィードバックを与える前に電子メールが送信されるのを待っている場合、メールサーバーへの接続に問題 (タイムアウト、サーバーダウンなど) があった場合、ユーザーの要求もタイムアウトになり、ユーザーは自分のステータスについて何も通知されません。順番なので、これは本当に非同期で行うべきだと思います。また、GMail の TOS で許可されているかどうかも確認する必要があります。そうでない場合は、サブスクリプションのいずれかを購入する場合に許可されているかどうかを確認できます。また、特定の時間枠内に送信できる送信メールの数には確実に制限があるため、オンラインストアが成功することを期待している場合、その制限に達して厄介な問題にぶつかる可能性があります. サイトをセルフホスティングしていない場合は、

于 2009-04-21T16:16:51.093 に答える
1

事実: Gmail がクラッシュします。頻繁ではありませんが、発生し、制御またはテストすることはできません。

最も簡単なクイックフィックスは、別のスレッドを開始するか、サブプロセスをフォークして電子メールを送信することです。はい、Gmail を使用すると問題が発生する可能性があります。私はそれと代替案について何も意見を持っていません。しかし、デザインの観点からは、プロセスが完了するまでユーザーを待たせる理由はまったくありません。

テストの観点からは、プロキシ パターンが役立つ可能性があります。Gmail を直接呼び出してメッセージを送信するのは簡単かもしれません。難しくしてください。オフにできるメール送信を行うプロキシ オブジェクトを配置します (テスト目的で Gmail をクラッシュさせることはできないことがわかっているため)。プロキシをオフにして注文を完了しようとすることで、メールの誤動作が発生した場合に何が起こるかをチームに追跡させるだけです. 同期的に行っている場合は、他の投稿者によってここで言及されているすべての疫病が頭をもたげます。非同期で実行している場合は、サイレントに失敗できるようにする必要があります (ユーザーの

于 2009-04-21T16:31:22.697 に答える