3

私は C# のメーリング アプリケーションで作業していますが、基本的に、失敗の理由が何であれ、どの受信者がメッセージを正常に受信したか、どの受信者が受信しなかったかを判断できる必要があります。

要約すると、たとえば、電子メール アドレスが存在しない場合は常に例外をスローする必要があります。ただし、この場合、SmtpClient.Send は例外をスローしないため、配信失敗の応答を監視して解析する必要があるかもしれません。

これは簡単な作業ではないことは承知しています。そのため、メール送信に関する主な問題を処理する方法について専門家にアドバイスをお願いしたいと思います。

前もって感謝します!!

4

3 に答える 3

5

追跡するハッシュまたは類似の画像を使用しない限り、セキュリティ上の理由から使用できないと思います。多くのメール クライアントは、画像も自動的にダウンロードしません。

スパム送信者が、どのメールが受信されているかを確実に判断できるとしたらどうでしょうか?

サーバーに ping を試すこともできます...つまり gmail.com ですが、これがどれほど信頼できるかはわかりません。

于 2009-06-29T04:06:32.063 に答える
4

それを確実に検出できる方法はありません。これは SMTP プロトコルの性質です。電子メールが配信されるかどうかを選択するのは、完全に受信者の SMTP サーバー次第です。

于 2009-06-29T04:06:07.820 に答える
0

あなたの特定のリクエストは、パフォーマンスの高い方法で実装することはできません。バウンスメールを使用して電子メールが正常に送信されたかどうかを判断する場合でも、通常、バウンスはすぐには送信されず、場合によっては数時間かかることがあります。 、電子メールが受信されなかった場合、電子メールを送信したメソッドが例外をスローすることを期待してください)。

ただし、何をしたいかによっては、これを非同期で行うことで要件を満たすことができる場合があります。たとえば、メーリング リスト アプリケーションを使用しているクライアントと仕事をしたことがあります。このアプリケーションでは、電子メールが返送された場合にすぐに処理する必要はありませんでした。彼らはこれを確実に知る必要さえありませんでした (つまり、電子メールが受信されなくても、バウンスしていなくても気にしませんでした)。彼らは、電子メールが無効であることを知り、購読を解除するだけで済みました。

このアプリケーションは LISTSERV を使用しました。送信される電子メールには、独自の独自の Return-Path ヘッダーがあります。特定の受信者から N 回のバウンスを受信すると、電子メールは自動的に購読解除され、受信者に関連付けられたデータベース レコードもクリーンアップされます。

LISTSERV なしでこれを実装する簡単な方法があるかどうかはわかりませんが、smtp2webを調べることをお勧めします。

于 2009-06-29T04:58:20.660 に答える