Portál AbcLinuxu, 30. dubna 2025 11:06
Pokud používáte IMAP, můžete mít problém se zálohováním. Nastavit klienta tak, aby stahoval vždy všechny emaily, stejně jako POP je často nemožné a v podstatě to odporuje tomu, k čemu má IMAP sloužit. Aby to nebylo málo, IMAP klient funguje obvykle zcela synchronně se serverem a tak pokud dostane místo schránky s tisíci emaily prázdnou složku, smaže bez otázek všechny emaily i z lokální cache.
Jelikož jsem nedávno kompletně přešel u emailových serverů na IMAP (mimochodem naprosto skvělá věc), začala se u mne postupem stupňovat paranoia. Co kdybych o všechny emaily přišel? A tak začalo hledání programu, který by byl schopen IMAP účty zálohovat.
Skvělou variantou je program offlineimap. Jde o software, který podporuje dva formáty účtů - IMAP a Maildir a umí synchronizovat vždy dvojice nastavených účtů. Můžete tak zálohovat IMAP účet do lokálního Maildiru (který pak jde bez problémů prohlížet pomocí emailových klientů, kteří formát Maildir podporují), nebo třeba synchronizovat dva IMAP účty.
offlineimap funguje čistě v příkazové řádce s konfigurací uloženou v souboru .offlineimaprc. Konfigurace je hierarchická: Globální nastavení > Nastavení účtů > Nastavení repositářů.
Takhle nějak vypadá moje konfigurace .offlineimaprc.
[general] accounts = Gmail, Osobni [Account Osobni] localrepository = OsobniBackup remoterepository = OsobniServer [Account Gmail] localrepository = GmailBackup remoterepository = GmailServer [Repository GmailBackup] type = Maildir localfolders = ~/MailBackup/Gmail [Repository GmailServer] type = IMAP ssl = yes remotehost = imap.gmail.com remoteuser = ******* remotepass = ******* folderfilter = lambda foldername: not re.search('(Spam|Trash|Starred)',foldername) ....
Nejdřív nastavíme účty, které chceme synchronizovat. Pak pro každý účet uvedeme lokální a vzdálený repositář, přičemž synchronizace proběhne směrem vzdálený -> lokální. Konkrétní repositáře pak umožňují celkem očekávané možnosti nastavení. Pomocí folderfilter ještě můžeme přesněji specifikovat které adresáře chceme synchronizovat, nebo přeskočit. V uvedené konfiguraci ignorujeme adresáře, které v názvu obsahují Spam, Trash nebo Starred. Pro jednodušší pravidla můžeme použít například folderfilter = lambda foldername: foldername not in ['Spam','Trash'].
Samotná synchronizace pak proběhne spuštěním příkazu offlineimap. Synchronizace je zcela bezproblémová, s barevným ASCII výstupem. Po skončení pak máte k dispozici lokální kopii vašeho IMAP účtu ve formátu Maildir, kterou už pak můžete zálohovat konvenčními metodami.
Tiskni
Sdílej:
Aby to nebylo málo, IMAP klient funguje obvykle zcela synchronně se serverem a tak pokud dostane místo schránky s tisíci emaily prázdnou složku, smaže bez otázek všechny emaily i z lokální cache.Zkusil jsem synchronizovat i spam koš, promazat ho a znovu spustit synchronizaci. Pošta byla pryč. Nechat tohle v cronu a dál to neřešit, tak je slušné riziko, že o poštu přijdu stejně. Nepřekouslo to diakritiku. třeba Centrum.cz má adresáře typu Odeslaná pošta a na lokálu už tak pěkně nevypadají, ale to jsou malé věci.
Zkusil jsem synchronizovat i spam koš, promazat ho a znovu spustit synchronizaci. Pošta byla pryč. Nechat tohle v cronu a dál to neřešit, tak je slušné riziko, že o poštu přijdu stejně.No to je celkem logicke
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.