Ich bin dabei, IMAP E-Mail-Integration zu einer unserer Web-Anwendungen (ASP.NET/SQL Server) hinzuzufügen. Ich verwende bereits ein commercial library, die die wichtigste IMAP-Funktionalität macht: Ordnerliste bekommt, Nachrichten-Header erhalten, erhalten MIME-Nachricht etc.)IMAP Ordner/Nachrichten Synchronisationsstrategie?
E-Mail-Daten bekommen „live“ vom IMAP-Server sehr gut funktioniert. Aber hier kommt die schwierige Aufgabe: Ich muss die E-Mail/Ordner Caching SQL-Datenbank mit dem IMAP-Server synchronisiert synchronisieren (ich muss Daten zeigen, die verschiedene Kriterien anwenden).
Unser Datenbankschema enthält im Wesentlichen eine "Ordner" und eine "E-Mails" -Tabelle. Die Tabelle "E-Mails" enthält hauptsächlich Kopfzeileninformationen wie "FromAddress", "FromName", "IsRead", "IsAnswered", "IsForwarded", "HasAttachments" usw. (ohne E-Mail-Inhalt oder Anhänge).
Ich habe zwei wichtige Szenarien zu berücksichtigen:
- bekommen alle Nachrichten zum ersten Mal (oder nachdem ein Benutzer reorganisierte die Ordner)
- Erste neue/letzten Nachrichten
Was wäre eine gute Synchronisierungsstrategie, um den Mailserver und den Datenbankserver auf dem neuesten Stand zu halten, wenn man berücksichtigt, dass die Leistung ein Hauptkriterium für das Design ist (ich kann nicht jedes Mal tausende von Nachrichten abfragen/vergleichen) wenn der Benutzer verschoben oder gelöscht wurde Ich alte E-Mails).
Danke!
Gute Antwort, danke. Ich denke, ich muss die Fähigkeiten der IMAP-Komponente/des Protokolls erneut besuchen. – splattne