2009-08-14 18 views
1

私はメールの情報全体を生成するcronを持っており、$mail_queue->put(.....)を使ってデータベーステーブルに入れ、送信後にメールを削除することができます。PEAR/Mail_Queueで10,000以上のメールを送信する最も良い方法

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

途中のサーバー制限は100メール/分です。現在、Mail_Queueの最後のcsv diffは適用されていません(現在サポートしています)。したがって、「遅延」オプションを使用することはできません。

私は$seconds_to_sendオプションを使用する考えがありましたが、それはcreate_timeフィールドのベースで計算されていますが、それは大きな助けにはならないがオプションでもあります。

本当にありがとうございます。

+3

これはスパム送信者向けですか? – kokos

+2

@Kokos:バルク電子メールには正当な理由がたくさんあります。スパマーがすでに使用している多くの簡単に利用可能なシステムの1つを使用するのではなく、新しい電子メールシステムを最初から作成しているなら、合理的なビジネス目的を果たすことができればいいと思う。 –

+0

いいえ - 私たちはカスタムニュースレター、アラート、登録メールをより良く扱うためにこのシステムが必要です – RRStoyanov

答えて

3

個人的には、失敗の機会が少なくなるため、私はクーロンの方法で行くつもりです。あなたのメールサーバーが応答を停止する、または他の何らかの理由で利用できなくなったとします。または、ネットワーク全体が数時間オフラインになっても、サーバーは依然として電子メールを生成しています。私はキューを使用すると言う。

遅延物に関しては、サービス/ cronjobに60秒ごとにキューを持ち、100個の電子メールをポップして送信してから終了してください。送信されるメールのキューがあるかもしれませんが、それはあなたが選んだシステムに関係なく起こります。キューは、ピーク時以外は空になります。

+0

はい、キューは良好ですが、ネットワーク全体が数時間オフラインになっていて、まだメールをキューにプッシュしていると、メールサーバーに問題が発生します(100分は問題ありませんが、あらゆる種類の*大量の郵送 - 50Kの電子メールは半日かかるでしょう)。はい、ディスク容量は安いです - 同様の事件は、300GBの空き容量だけでは十分ではないことを教えてくれました。言い換えれば、あなたが穴の中にいるなら、掘りなさい!あなたはメールを送信しているのですが、あなたがオフラインになっている間はどこにでも行くようなものではありません。 – Piskvor

0

なぜあなたは100通の電子メールをループせず、60秒間眠るのですか?これはサーバー時間を必要とせず、スクリプトが少ししか実行されないという唯一の欠点があります。

2

は2つのスクリプトを使用します。 mail_queueテーブルに送信する必要があるメールを入れるためのスクリプトと、90個のメールをまとめて送信する2番目のスクリプトです。約2分ごとに起動されるように2番目のスクリプトを設定します。

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

関連する問題