1

私は現在、電子メールを送信する Web アプリケーションに取り組んでいます。ブラウザーでユーザーが実行したアクションによってイベントが作成され、これらのイベントをサブスクライブしているユーザーに電子メールを送信するセカンダリ サーバーに渡されます。

電子メールを送信するための現在の実装は、基本的に自家製の SMTP サーバーです。レガシーシステムから C# に移植されたもので、かなり信頼性が低いと思います。

私の要件は、メッセージを送信できることと、メッセージの配信ステータスを知ることです。失敗している場合は、その理由と、再試行中かどうかを知りたいです。

理想的には、自家製の SMTP サーバーを破棄して、オープン ソース ソリューションを使用したいと考えています。マシン上で SMTP サーバー (hMailServer など) を実行し、.NET の SmtpClient を使用して接続してメッセージを送信できることを知っています。これだけでは、メッセージのステータスについて多くの洞察を得ることはできません。

hMailServer では、COM API を使用してサーバーにクエリを実行し、メッセージ ステータスを取得できるようです。これは可能ですか?これは有効なアプローチですか?

上で概説したこと以外に、他に選択肢はありますか?

ありがとう!

4

1 に答える 1

2

あなたが求めていることは、全体として実現可能ではありません。(あなたが求めていることの一部は実現可能です。)

電子メールは送信者と受信者の間で複数のサーバーを通過し、それらの一部のみを制御できます。残りは完全に制御不能です。

送信失敗の多くは把握できますが、受信者に到達する前にサード パーティのスパム ブロッカーが電子メールをブロックした場合、そのスパム ブロッカーの動作を制御することはできません。理由が返されることを保証することはできません。

別の方法として、可能性のあるエラーを (たとえば hMailServer を介して) キャッチして、メール マーケティング担当者が行っていることを行うことができます。これは、明らかに、配信されることとは異なります。

.NET でこれを行う方法の詳細については、http: //www.codeproject.com/Articles/15109/Tracking-Emails-for-Open-Readを参照してください。

私たちの経験から、 Arial SoftwareのCampaign Enterprise という名前の商用ソフトウェアを使用しました。このソフトウェアは、ユーザーが求めているほぼすべてのものを追跡する機能を提供し、説明されている「電子メールを開く」手法を使用します。それはかなりうまくいきましたが、無料ではありません。

他にも選択肢があるかもしれませんが、それは製品を推奨するための質問であり、ここでは話題になりません。上記は、価格帯内のものを含め、他の製品が存在するかどうかを確認するために独自の調査を行うための出発点としてのみ提供しています. (これ良いかもしれませんが、無料です。)


以下のコメントに基づいて追加:

トラップ可能な SMTP 送信エラーの追跡を試みるためのその他のオプション。

知りたいのが SMTP セッションからのエラーだけである場合は、組み込みの .NET ツールを使用して、次の概要のようにセッション トレースを取得できます。

http://www.systemnetmail.com/faq/4.10.aspx

SmtpFailedRecipientsException が発生した場合は、それを取得することもできます。 MSDN で入手できるコード サンプルを含むドキュメント

于 2012-07-18T16:28:11.137 に答える