2

購読しているユーザーに定期的に電子メール アラートを送信できるようにする必要があります。PHP は1 つのメッセージを送信するのに苦労しているように見えるので、良い代替手段を探しています。

実装が十分に高速であれば、どの言語でもかまいません。送信されるメールの量は、最終的には数千になります。

ライセンスされたソフトウェアの購入を避けることができれば、なおさらです。

4

8 に答える 8

2

PHP での電子メール キューイング- 短いバージョン - Pear の Mail_Queue。私はこれを使用して、1 日あたり 30 ~ 50,000 件以上 (週に数日) 以上のメールを問題なく 1 年以上送信しています。

于 2008-10-02T12:55:40.940 に答える
1

Javaの場合、http://java.sun.com/products/javamail/ があります。アプリケーションで使用しました。セットアップと使用は非常に簡単です。

Rubyでは非常にシンプルですが、使ったことがないのでパフォーマンスについては何も言えません。 http://snippets.dzone.com/posts/show/2362

そうは言っても...PHP自体が遅すぎてメールを送信できないのではないかと思います。おそらく、アプリケーションにボトルネックがありますか?

于 2008-10-02T07:43:06.947 に答える
1

できることの 1 つは、質問の焦点を基になるメール ソフトウェアに変更することです。たとえば、大量の電子メールを送信する場合、任意の言語を使用して BSMTP 形式で書き出します。これは基本的に単純な SMTP クライアント コマンドのように見えます。何かのようなもの:

MAIL FROM:<me@example.com>
RCPT TO:<you@example.com>
DATA
From: Me <me@example.com>
To: You <you@example.com>
Subject: test email

This is the body of the test email I'm sending
.

次に、exim を介して BSMTP ファイルをフィードします。

cat *.bsmtp | exim -bS

これにより、プログラムから電子メールを送信する際の遅延が本質的に取り除かれ、exim に負担がかかります (MTA はそれを処理するのに適しているため)。

基本を理解したら、より効率的にするために変更できることがたくさんあります。たとえば、メールがカスタマイズされていない場合は、同じドメインのすべての受信者を同じ BSMTP ファイルに入れることで事前に最適化できます。

MAIL FROM:<me@example.com>
RCPT TO:<you@example.com>
RCPT TO:<him@example.com>
RCPT TO:<her@example.com>
RCPT TO:<them@example.com>
DATA
From: Me <me@example.com>
To: Me <me@example.com>
Subject: test email

This is the body of the test email I'm sending
.

また、メールを送信するために MTA 自体を最適化する方法についても、さまざまな調整の余地があります (たとえば、並行配信、同じ TCP 接続を介した同じメール サーバーへの電子メールの配信などを自動的に処理します)。

コードでそれを行うことに関しては、これを行うのに役立つ perl ライブラリがドロップされていました。基本的に、電子メールとアドレスを入力すると、必要に応じてメール サーバーへの呼び出しがフォークされます。許可する並列セッションの数を構成でき、サーバーの負荷も監視し、負荷がユーザーが構成可能なしきい値を超えた場合はスロットルを下げました。

于 2008-10-02T12:49:05.183 に答える
1

データベース テーブルの電子メール キューに書き込むさまざまなアプリケーションと、そのテーブルをポーリングして電子メールを作成し、メール サーバー経由で送信する .Net Windows サービスがあります。

1分あたり最大1000通のメールを処理します...

于 2008-10-02T07:33:54.737 に答える
1

私の以前の仕事で、PHP で大量の電子メール送信ソリューションを作成しましたが、これはうまく機能したので、完全に除外する理由がわかりません :)

于 2008-10-02T07:59:24.333 に答える
1

Python の smtplib はセットアップが簡単で、非常にクリーンな API です。

于 2008-10-02T08:01:11.897 に答える
0

CSV ファイルを読み込む e-Campaign というプログラムを使用しています。プログラムで行う必要がある場合は、10,000 通のメールを一度に送信しようとしないように、待機テクニックを組み込むことをお勧めします。e-Campaign では、一度に送信するメールの数を選択し、それらのバッチの間に休憩時間を入れることができます。それでも非常に高速ですが、サーバーで過負荷の問題が発生することはありません.

于 2008-10-02T12:58:15.723 に答える
-2

非常に簡単にメールをダウンロードして送信できるblatと呼ばれるdosベースのコマンドラインツールがあります

于 2008-10-02T07:48:40.850 に答える