質問

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

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

ライセンスされたソフトウェアの購入を回避できる場合は、はるかに優れています。

役に立ちましたか?

解決

Pythonのsmtplibは、設定が簡単で、非常にクリーンなAPIです。

他のヒント

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

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

1分間に最大1000件のメールを送信します...

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

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

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

以前の仕事で、PHPで大量メール送信ソリューションを作成したことをお伝えしたいので、完全に除外する理由はわかりません:)

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

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ライブラリを落としていました。基本的には、メールとアドレスを入力し、必要に応じてメールサーバーへの呼び出しを分岐します。許可する並列セッションの数を構成でき、サーバーの負荷も監視し、負荷がユーザー設定可能なしきい値を超えた場合は抑制します。

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top