2

多くのユーザーに大量のメールを送信しています (1 日あたり 20,000 件以上)。私たちが直面している主な問題の 1 つは、無効なメールまたは無効なメールです。ユーザーがアカウントを削除したり、プロファイルを更新せずにメール アドレスを変更したり、メール データベース ビルダーが単に無効またはアクティブでなくなったメールを検出したりすることがあります。これらの未解決の返されたステータス メッセージは、Web マスター アカウントに山積みになるだけでなく、貴重なサーバー リソースを浪費し、試行が繰り返されるため、より頻繁にスパムとしてフラグが立てられます。

今、私たちのメールサーバーは「一時的に利用できません」を返すアドレスにメールを送信しようとするように設定されていますが、送信後すぐに PHP にステータスメッセージを受信できるようにしたいと考えています。たとえば、私の Sender クラスが電子メールを送信するときに、返されたステータス メッセージを知りたいです。電子メールがアクティブでなくなったのか、サーバーが存在しないのか、単に別のアドレスに移動されただけなのかなどです。

当然、遅延メールのステータスメッセージも受信できるようにしたい。そのため、受信者のメールアドレスが一時的に利用できないためにメールが送信されない場合、「一時的に利用できません」というメッセージを Php に戻したいのですが、送信が成功したら実際のメッセージが返されるようにしたいと考えています (たとえば、メールが 2 日後に送信された場合)。

これを達成するのに役立つライブラリはありますか? この問題に対する最も一般的なアプローチは何ですか?

4

2 に答える 2

2

PHPとメールに関するほとんどの質問と同様に、これは主にMTAに関するものです。

一括メール送信はそれ自体が科学であり(OK、ブラックアートのようなものです)、これらの種類のボリュームでは、妥当な配信率が必要な場合は、ゲームを大幅に強化する必要があります。

しかし、質問に戻ります。

これの非常に多くは、メールサーバーの構成方法に関するものです。AFAIK、ほとんどのMTAは、メッセージがキューから削除されたとき(たとえば、最後の配信試行後)にのみ失敗メッセージを送り返します。これにより、各試行を追跡するための2つのオプションが提供されます。

1)ログファイルを解析します

2)試行回数を1に設定します(オプションで、自分で再キューイングを処理します)。

サーバーから正常に送信された後、メッセージの配信に失敗する可能性があることを考えると、メッセージの進行状況を追跡するために配信ステータス通知(つまり、バウンスメール)を使用することは非常に理にかなっています。したがって、オプション2を使用すると、別のメッセージを作成する必要がなくなります。さまざまなシナリオを処理するためのコード。

これが実行されているOSやMTAがわからなければ、より具体的な推奨事項を提示することはできません。

于 2011-07-05T10:24:00.567 に答える
1

symcbeanの答えは、多くの理論的入力と、ケースを処理するためのいくつかの手段を提供します。

さらに、他のライブラリや組み込み関数がどのように機能するかを確認できるかもしれません。たとえば、あなたは見ることができます:

私は数回前にPHPListを使用しましたが、それはすでに信頼できるソリューションでした。PHP Mailerクラスはわかりませんが、試してみる価値があるかもしれません(または、少なくとも同様の問題をどのように処理するかを調べてみてください)。

よろしく、

マックス

于 2011-07-05T10:59:43.297 に答える