Web アプリケーション (ASP.NET / SQL Server) の 1 つにIMAP 電子メール統合を追加しようとしています。最も重要な IMAP 機能 (フォルダー リストの取得、メッセージ ヘッダーの取得、MIME メッセージの取得など) を公開する商用ライブラリを既に使用しています。)
IMAP サーバーから「ライブ」で電子メール データを取得することは非常にうまく機能します。しかし、ここで難しい作業が発生します。メール/フォルダーキャッシュ SQL データベースを IMAP サーバーと同期させておく必要があります(さまざまな基準を適用してデータを表示する必要があります)。
私たちのデータベース スキーマには、基本的に "Folders" テーブルと "Emails" テーブルが含まれています。「メール」テーブルには、主に「FromAddress」、「FromName」、「IsRead」、「IsAnswered」、「IsForwarded」、「HasAttachments」などのヘッダー情報が含まれます (メールの内容や添付ファイルは含まれません) 。
2 つの主要なシナリオを検討する必要があります。
- すべてのメッセージを初めて取得する (またはユーザーがフォルダーを再編成した後)
- 新しい/最近のメッセージを取得する
パフォーマンスが主要な設計基準であることを考えると、メールサーバーとデータベースサーバーを最新の状態に保つための適切な同期戦略は何でしょうか (見つけるために、接続するたびに何千ものメッセージを照会/比較することはできません)ユーザーがいくつかの古い電子メールを移動または削除した場合)。
ありがとう!