定期的に POP3 電子メール ボックスにアクセスして電子メールを取得するために、サーバー ベースのコンポーネントを必要とする Web アプリケーションがあります。次に、サービスは以下を含む電子メールを処理する必要があります。
- いくつかのビジネス ルールに対して電子メールを検証する (件名に有効な参照が含まれているか、どのユーザーがメールを送信したかなど)。
- 添付ファイルの分析とディスクへの保存
- 電子メールの本文と添付ファイルの詳細を取得し、データベースに新しいアイテムを作成します
- または、参照が受信メールの件名と一致する既存のアイテムを更新します
これにアプローチする最良の方法は何ですか?POP3 クライアントを最初から作成する必要はありませんが、電子メールの処理をカスタマイズできるようにする必要があります。理想的には、アクセスと取得を行うコンポーネントをプラグインして、添付ファイル、本文テキスト、件名などの配列を返し、処理の準備ができるようにすることができます...
[更新: レビュー]
さて、私は (主に無料の) .NET POP3 ライブラリを調べるのにかなりの時間を費やしたので、以下で言及されているもののいくつかと他のいくつかについて簡単にレビューしたいと思います。
- Pop3.net - 無料 - 問題なく動作しますが、提供される機能に関しては非常に基本的です。これはほとんど POP3 コマンドといくつかの base64 エンコーディングだけですが、非常に簡単です - おそらく良い紹介です
- Pop3 Wizard - 商用 / 一部のオープン ソース コード - これをビルドできませんでした。DLL がありません。気にしません。
- C#Mail - 個人使用は無料 - うまく動作し、Mime パーサーと SMTP クライアントが付属していますが、コメントは日本語で (大したことではありません)、SSL では動作しませんでした。 SslStream コンストラクターを変更した後、問題なく動作しました
- OpenPOP - フリー - は約 5 年間更新されていないため、現在の状態は .NET 1.0 であり、SSL をサポートしていませんが、解決するのに問題はありませんでした - 既存のストリームを SslStream に置き換えただけで機能しました。Mime パーサーが付属しています。
無料のライブラリでは、C#Mail か OpenPOP を選びます。
Chillkat、Rebex、RemObjects、JMail.netなどの商用ライブラリをいくつか調べました。機能、価格、および会社の印象に基づいて、私はおそらく Rebex を選びますが、要件が変更されたり、C#Mail または OpenPOP のいずれかで生産上の問題が発生した場合は、将来的にそうする可能性があります。
誰かがそれを必要とする場合に備えて、これは私が C#Mail と OpenPOP で SSL を有効にするために使用した代替 SslStream コンストラクターです。
SslStream stream = new SslStream(clientSocket.GetStream(), false,
delegate(object sender, X509Certificate cert,
X509Chain chain, SslPolicyErrors errors) { return true; });