1

$mail_queue->put(.....)メール情報全体を生成し、送信後にメールを削除するオプションを使用してデータベーステーブルに配置するcronがあります。

ここで少し助けが必要です: 上記の情報を入手した後、電子メールを送信する最良の方法は何ですか? $mail_queue->sendMailsInQueue()他のcronジョブまたは何か他のものを使用して、すぐに実行しますか?

ちなみに、サーバーの制限は100通/分です。現在、最後の csv diffMail_Queueは適用されていないため (現在、そのサポートに取り組んでいます)、「遅延」オプションを使用できません。

このオプションを使用するアイデアがありました$seconds_to_sendが、create_time フィールドに基づいて計算されているため、大きな助けにはなりませんが、これもオプションです。

任意のアイデアや提案をいただければ幸いです。

4

3 に答える 3

3

個人的には、失敗の可能性が少ないため、cron を使用します。メールサーバーが応答を停止したり、その他の理由で利用できなくなったりするとします。または、ネットワーク全体が数時間オフラインになったが、サーバーがまだ電子メールを生成している場合はどうなるでしょうか。キューを使用すると言います。

遅延については、サービス/cronjob が 60 秒ごとにキューを取得し、100 通の電子メールをポップして送信し、終了するようにします。送信される電子メールのキューを取得する場合がありますが、それはどのシステムを選択しても発生します。いずれにせよ、オフピーク時にはキューは空になります。

于 2009-08-14T01:27:04.240 に答える
2

2 つのスクリプトを使用します。1 つは、送信する必要のあるメールを mail_queue テーブルに入力するスクリプトで、2 番目のスクリプトはそれらのメールを一度に 90 通のメールのチャンクで送信するスクリプトです。2 番目のスクリプトが約 2 分ごとにアクティブになるように設定します。

ホスティングプランをアップグレードすることもできます;-)

于 2009-09-16T22:00:12.400 に答える
0

なぜ 100 通のメールをループして 60 秒間スリープしないのか。これにはサーバー時間がかかりません。唯一の欠点は、スクリプトの実行時間が少し長くなることです。

于 2009-08-14T00:28:15.153 に答える