Das Maildir- Format zum Speichern von E-Mail wurde eingeführt, das genau das tut, was Sie beschreiben: Eine Nachricht wird in einer separaten Datei gespeichert.
Es gibt Maildir-Treiber (Backends) für einige E-Mail-Clients und einige E-Mail-Zustellungsagenten sowie einige E-Mail-Zugriffs-Server (IMAP oder POP oder Web-Interface).
Wenn Ihre E-Mails in Maildirs gespeichert werden, ist es natürlich am einfachsten, sie unter die übliche Versionskontrolle zu stellen.
So können Sie Maildir-Backends für Mail-Clients suchen.
Tatsächlich kann das Synchronisieren Ihres Mail-Speichers jedoch etwas schwieriger sein als das Synchronisieren von Verzeichnissen von Dateien - aufgrund verschiedener Flags (neu, gelesen), Beschriftungen, Bewegungen oder Kopien von Nachrichten zwischen Ordnern und - dem schwierigsten Teil. -die serverinternen Nachrichten-IDs, die von Mail-Access-Servern (IMAP) oder Mail-Clients verwendet werden . Worum geht es bei diesen IDs? Nun, es ist wichtig, IDs zwischen mehreren Kopien Ihres E-Mail-Speichers aufzubewahren, damit die Zwischenspeicherung Ihres E-Mail-Clients korrekt ausgeführt werden kann.
Ich habe dieses Problem untersucht und einige Notizen hier niedergeschrieben: Recherchen, wie Sie ein IMAP-Konto sichern können . (Aber dann musste ich diese Aufgabe nicht erledigen, daher waren die Notizen und meine praktische Lösung nicht vollständig.)
Die allgemeine Idee, zu der ich gekommen bin, ist, dass die Verwendung eines Mail-Clients und die einfache Versionskontrolle von Maildirs Ihnen nicht alles bieten, was Sie von der Verwaltung der Revisionen Ihres Mail-Speichers erwarten. Es ist besser, es mit echten IMAP-Servern (entweder Remote- oder lokalen Servern) für einen einheitlichen Zugriff auf die E-Mail zu kombinieren, und mit speziellen Tools, die auf IMAP ausgeführt werden, um verschiedene Kopien / Repositorys / Verzweigungen Ihres Mail-Speichers zu synchronisieren (die speziellen Tools werden es tun.) achten Sie auf die Flaggen, Etiketten und IDs). Die übliche Versionskontrolle ist in Ordnung, um die Revisionen zu überprüfen und zu einer früheren Revision zurückzukehren. Beim Zusammenführen von Verzweigungen (= Synchronisieren) würde ich ein komplexeres Verfahren in Betracht ziehen:
Sie möchten Zweige
A
und zusammenführenB
.
- Sie bereiten also den neuen Zustand (Revision) vor
C
, der den zusammengefügten Zustand halten wird, indem Sie einen von ihnen kopieren, z. B. in den neuen kopierenA
C
.- Dann verwenden Sie ein Tool (z. B. "imapsync"; wählen Sie das für Ihre Bedürfnisse geeignete Tool aus; ich habe einige solcher Tools in meinen Notizen aufgeführt ), um die neuen Änderungen von B nach C: imapsync
B
zu übernehmenC
.(Dies kann davon ausgehen, dass Sie über einen Server über IMAP auf den Mail-Speicher zugreifen.)
- Machen Sie
C
jetzt ein Commit (als Ergebnis des ZusammenführensA
undB
vorher könnten Sie einen entsprechenden Befehl in Ihrem VCS verwenden, um die Informationen aufzuschreiben, die das Ergebnis des ZusammenführensB
sindA
, z. B. "git merge B -s ours --no-commit
" inC
).
Bitte erforschen Sie die Details selbst, ich habe nur die allgemeine Idee im Sinn, und ich führe ein solches Verfahren jetzt nicht in der Praxis aus.
Ich denke, dass dies eine sehr interessante Aufgabe ist, die von üblichen, bekannten Dienstprogrammen erledigt werden muss. Ich würde gerne mehr über erfolgreiche Setups erfahren, mit denen sich andere Leute befassen!
AFAIR habe ich offlineimap
für meine Aufgabe ausgewählt, ein IMAP-Konto in Git zu sichern . BTW hier ist eine Antwort mit einer Beispielkonfiguration von offlineimap
.