2011-12-14 9 views
5

はI現在、このように動作します引用システムを作成しています:PHPで電子メールキューを作成していますか?

ユーザーがフォームを介してデータを提出 - DBに送信>データ - >生成されたPDF - >電子メールは私が

を送りましたhtmlmimemail5ライブラリを使用してこれを実行すると、生成された電子メールは、ローカルネットワーク上の別のサーバー上のメール交換に送信されます。

悲しいことに、PHPスクリプトは、スクリプトがMXからの送信が完了したか、失敗したという確認をスクリプトが待つまでに約1分かかります。

私は、すべての電子メール処理を処理する別個のPHPアプリケーションを用意して、ユーザーが1分待つ必要がなく、代わりに情報を表示できる次のページにジャンプすることができることを期待していました

このアプリケーションは、ユーザーのプロセス要求から構築された電子メールキューでうまく機能しません。キューが空の場合、シャットダウンする可能性がありますか?

私は、(プリントキューのような)電子メールキューにする必要があると思います。

しかし、私はジュニアなPHP開発者であり、他のすべての開発者がベビーシッターには忙しいので、私は完全に迷っています。どこから始めるべきか、これが正しい戦略であれば分かりません。

詳細情報:

  • Serverは、すべての内部および外部の電子メールも同様に遅延を加えるPostiniの、を介してルーティングされる

  • はApache 2.2/PHP5
  • BSDの刑務所です。

    ご意見やご提案は歓迎します。 :)

    答えて

    14

    これはかなり簡単に実装できます。すぐに送信するのではなく、電子メールデータをデータベースに保存します。待ち行列に入れられた電子メールを受け取り、それらを送信するスクリプト(cronで毎分実行するか、より良い方法ではdaemonized PHP script)を用意してください。

    進捗状況を示すフラグ(「送信」列と「送信済み」列)があることを確認してください。スクリプトは、送信中のものを繰り返し送信しないようにしています。

    +1

    ... "soft/hard bounce"、 "delayed"、 "no MX for domain"などのフラグがあります。 – Piskvor

    0

    ローカルホストからのみピックアップし、「実際の」MXにリレーするローカルMXを実行します。

    +0

    PHPでキューを構築して管理することは可能ですが、ホイールを改革する匂いがします。 – Piskvor

    関連する問題