1

C#/ASP.NET で単純な Web メール クライアントを作成しようとしています。Aspose.Email DLL を使用して、IMAP 経由で電子メール サーバーに接続し、電子メールをユーザーに表示しようとしています。現在、取得したメールをファイルシステム/データベースに保存するか、リクエストごとにこれらのメールを取得して表示することを考えています。

すべてのユーザーのメール本文を保存すると、データベースのサイズが大きくなる可能性があると思いますが、ユーザーは結果をページングする必要があります。IMAP 経由で取得した電子メールを処理するための最善の戦略は何ですか?

4

2 に答える 2

2

一部の通常のデスクトップ電子メール クライアントは、電子メールを事前にダウンロードしてローカルに保存し、ユーザーにより迅速に表示できるようにします (また、前述のように、検索やナビゲーションに関連するその他の実用的な理由もあります)。

他のユーザーは、ヘッダーのみをダウンロードし (フォルダー内の電子メールのリストを表示するのに十分です)、要求に応じてのみ本文全体をダウンロードします (ユーザーがリスト内の電子メールを開いたとき)。最終的には、これは単なるトレードオフであり、自分のシナリオで何が最適かを確認する必要があります。

個人的には、フォルダー内のすべてのメールを最初にダウンロードするのはやり過ぎだと思います。クライアントが特に大きなフォルダーのメールをダウンロードするのに何時間もかかってしまうのを見てきました。ウィンドウ一杯の情報を表示するのに十分なだけを表示し、ユーザーが下にスクロールすると残りを取得するのが良いオプションですが、実装するのは簡単ではありません。とにかく、IMAP4 実装の推奨事項は、サーバーとの通信を最適化し、より一般的なデスクトップ クライアントに存在する多くの一般的な落とし穴を回避するためのいくつかのトリックを教えてくれます。

データベースの増大が心配な場合は、メタ情報のみをデータベースに保存し、電子メール自体をファイル システムに保存します (たとえば、.eml ファイルに保存します)。繰り返しますが、最適なソリューションは、特定のコンテキストによって異なる場合があります。

于 2013-09-19T23:37:15.627 に答える