2009-03-20 10 views
3

IIS上のSMTPにヒットする前に、メッセージを覗いたり表示する方法はありますか?これはExchange Serverではなく、ただSMTPを実行しているだけです。私はメッセージを見て、それをSMTPに渡すことができるかどうか確認しようとしていますか?代わりに別のリスナーを追加することで、それを渡すデフォルトのSMTPのリスナーに結合し、メッセージを傍受する方法があるかどうIIS SMTPメッセージインスペクション

おかげで

編集は〜、私は疑問に思って。

第2編集〜OK、ここに私の問題があります。私は交換箱の前にスパムフィルターを持っていますが、残念なことに(ソフトウェア設計のため)フィルターは "Directory Harvesting Loookup"とは限られています。これは、ADに存在するメールアドレスがチェックされ、そうでない場合にメールが削除されるプロセスです。私の現在のフィルタは、アドレスの1つがADに存在しない場合にメールをドロップします。私はベンダーと話しましたが、現時点では何もできません。私は、メールを傍受(オープン、読み取り、解析)し、アドレスを検証し、追加のスキャンのために電子メールをフィルタに渡すこのフィルタの前にアプリを置くことを検討しています。私は彼らのソフトウェアでこの機能を切り捨てます。私が間違っていない、彼らのフィルターは、私は大量の電子メールが私のドメイン内の存在しないユーザーに送信する必要があるので、修正する必要がありますこの1つの例外で素晴らしい作品。

+0

私は、役に立つかもしれないいくつかの情報で私の答えを更新しました。 – Kev

答えて

0

.Netでは、SMTPサービスが監視しているフォルダとは異なるフォルダに電子メールを送信するようにSmtpClientに指示できます。そうすれば、各メッセージを確認してから実際のピックアップフォルダに移動することができます。 (SmtpClient.PickupDirectoryを参照してください)

2

メッセージを送信するために接続する独自のProxy SMTPサービスを作成できます。すべてのメッセージを実際のSMTPサービスに直接転送し、すべての応答を戻すことができます。そうすれば、これらすべてのメッセージをevesdropし、それに応じて対処することができます。

あなたが何をしているのかちょっと残念かもしれませんが、あなたがプロキシであるすべてのことをプロキシとして知っている必要はないので、コードはかなり簡単です。

+0

私はSMTPサーバーへのインバウンドメッセージを検査し、それを渡そうとしています。別のSMTPリスナーを追加するのではなく、メッセージを最初に傍受することを望んでいました。 –

1

は、.NET 2.0を使用しているなら、あなたは、ファイルへのSMTPセッションのログを記録することができます

:この質問を見てみましょう

:更新

How do I create a log file of the SMTP session? (System.Net.Mail)

Testing SMTP with .net (Stack Overflow)

あなたの編集:

"既定のSMTPリスナーにバインドしてメッセージを傍受してから渡す方法があるのだろうか?"

...と、以下のコメントから:

は、「私はSMTPがそれを取得する前に、実際のメッセージを検査していますよ。」

SMTPプロトコルを完全に理解しているかどうかはわかりません。 SMTPメッセージは、一体型の火災と忘却のエンティティではありません。 SMTPはセッションベースであり、クライアントとサーバーの間に会話があります。そのメッセージは単なる一部です。トレースメソッド(上記にリンクされている)は、クライアントとサーバーの間の交換全体を記録し、メッセージを渡す前にメッセージ全体を傍受します。プロキシサーバーやモックサーバーの代わりに、依然としてアプリケーションがSMTPクライアント/サーバー交換を行う必要があります。あなたの要件に最も近い解決策は、上記の答えにリンクされているPapercutのようなものを使用することです。

ケヴ

+0

私はSMTPがそれを取得する前に実際のメッセージを調べるつもりです。 –

+0

私は自分の投稿を編集し、私の目的を追加しました。ご協力いただきありがとうございます。 –

+0

これで風景が完全に変わります:) – Kev

0

IIRC、あなたはまだ(それは本格的な交流ではありませんが)IIS SMTPサービスのイベントシンクを書き込むことができます。私がこれをしてから何年も経っていますが、それが役に立っているかどうかを知るために、 "exchange event sink"のためにgoogleしたいかもしれません。

+0

私の投稿を編集して私の目的を追加しました。ご協力いただきありがとうございます。 –

0

Etherealのようなものは、あなたの要求の盗聴部分を達成させます。それはあなたが "傍受"と "通過"を意味するものであるかどうか私には明らかではありません。トラフィックをフィルタリングするか、トラフィックを渡す前に検査するために十分な時間だけ遅延させたいのですか?

+0

私は自分の投稿を編集して目的を追加しました。ご協力いただきありがとうございます。 –