3

私の演習は、Symfony2 でメール システムを作成することです。

  • 10,000人用
  • すべてのメールには個人名が必要です
  • 秘書はメッセージを作成し、送信をクリックし、数分後にコンピューターの電源を切りたい
  • 送信がクリックされてから 1 秒後、秘書はフィードバックを取得する必要があります 「メールを送信中」
  • メール送信はバックグラウンドで動作する必要があります

プロセス コンポーネントはこのジョブに適していますか?

誰かがこの問題を解決するためのヒントを教えてくれませんか?

クリック送信(AJAX)後のことだと思います:

  • SMTP サーバーが動作しているかどうかを確認する
  • データベース秘書メッセージに保存
  • メッセージを表示した後、以前に保存されたメッセージを送信するための別の要求を送信します
  • 最大制限時間を 0 に設定
  • SwiftMailer を使用して、これらの 10,000 通のメールを送信します

また

  • PHP exec 関数を使用して外部スクリプトを起動し、これらのメールを送信します Python などで書き込みます

どう思いますか?

4

1 に答える 1

1

私がそれを行う方法は、スプールメール機能を使用することです:

http://symfony.com/doc/master/cookbook/email/spool.html

このスクリプトを使用して

php app/console swiftmailer:spool:send --env=prod

たとえば、メール作成スクリプトを呼び出した後、次のことができます。

  • ajax を使用して、そのコマンドを実行する別の php スクリプトを呼び出します
  • そのスクリプトにcronジョブをセットアップします
  • スプール ファイルを解析して電子メールを送信する Python スクリプトを実行します。

私は 2 番目の方法を使用します。そのため、これらすべてのメールをすばやくスプールするだけで、送信プロセスはシステムに任せることができます。

于 2012-06-27T20:34:03.217 に答える