1

私は PEAR::Mail を初めて使用します。大量のメール (10,000 件以上のメール) を送信する方法を教えてくれるチュートリアルを探しています。「php で mail() を使用するのは効率的ではありません。smtp ソケットを開いたり閉じたりするためです」、これは私がインターネット ソースから読んだものです (リンクが見つかりませんでした、grrr)。

というわけで、手動でやろうと思っていて、PHP で使えるメールライブラリを使ってみたら、この PEAR:Mail を見つけました。PEAR サイト自体には、「Sending Multiple Recipients」という簡単なチュートリアルがあり、すべての受信者が配列に挿入されてから送信されます。これは 10k++ メールを送信する方法ですか? 「メール キュー」と呼ばれるものを覚えていますが、PEAR:Mail での使い方がよくわかりません。誰か助けてくれませんか?

Facebook が大量のメール (通知) を送信するために for ループを使用するとは思いませんよね? (まあ、これは私が考えたものです)

4

2 に答える 2

4

送信者を実装する言語よりも大量の電子メールがあります。リッチによって提案されたライブラリに関する限り、SMTPリレーを使用してメールをキューに入れて調整することを検討します。

私が会社の大量メーラーを書いたときに発見したように、バルクメーラーが直面する主な問題は、メールをエーテルにパントアウトできる速度と、グレーリストに登録されたメールの再試行をどのように管理するかなどです。

したがって、第1に、メールアウトジョブを実行できる優れた堅牢なSMTPサーバーが必要です。また、サービスを抑制して監視する方法も必要になります。IISを実行し、適度に大きなパイプに接続されている標準のWindows Serverでは、15分ごとに5kのメールをクリアできます。あなたが48時間でそれらすべてを実装することを探しているなら、あなたはプッシュされるでしょう。

実際のところ、データをプッシュできる速度には厳しい制限があり、ISPなどによって課せられる人為的な制限もあります。これにより、カタツムリのペースでジョブを実行したくない場合は、スロットルや正しいDNSレコードなどが絶対に不可欠になります。10kのメールをドアから押し出すことができる最小時間(そしてメールのサイズは約50kbなので、スループットについてさらに詳しく知ることができます)は30分で、最上位のキットと膨大な数の接続があります。私たちをバックアップする配水管。

私たちの会社の初期の頃、彼らが私たちのローカルブロードバンドからものを郵送していたとき、7000通のメールを送るのに約12-14時間かかりました。したがって、物理的なリソースが非常に重要であることを理解する必要があります。

また、必然的に、最初のタイムアウトでは配信されない10kあたり最低約50通のメールが送信されることになります。そしてそれらの約10はこれまでどこにも行きません。再試行キューにこれらのメールが存在すると、メールのさらなるバッチの配信に多少の抵抗効果が生じる可能性があります。これは最小限ですが重要です。

また、1万通のメールファイルをサーバーにぶつけて、それについて完全に満足することを期待することはできません。実験の結果、3分ごとに1,000通のメールを滴下すると、送信するキューの比率が最適になることがわかりました。マイレージはハードウェアによって異なります。

率直に言って、ソフトウェアライブラリの選択は、この段階での心配の中で最も少ないものです。

于 2009-10-12T11:20:06.493 に答える
0

メールの扱いには本当に気をつけてください。迷惑メールやデータ保護に関しては、考えなければならないことがたくさんあります。Pear では、有用なドキュメントはどこにでもほとんどありませんが、これは役立つかもしれません:

http://www.phpmaniac.net/wiki/index.php/Pear_Mail

特に時間がない場合は、Campaign Monitor などを使用したほうがよいかもしれません。

于 2009-10-12T10:59:03.493 に答える