imapsync: datumi nisu sačuvani, potpuni vodič

7 min

imapsync je referentni alat za migraciju emaila za Linux administratore sustava, provajdere usluga hostinga i sve koji preferiraju open source rešenja. Kreirao ga je Gilles Lamiral, imapsync se aktivno održava od 2001. i korišten je za milijune migracija sandučadi diljem svijeta. Podržava gotovo sve IMAP servere: Dovecot, Courier, Cyrus, Zimbra, Exchange, Gmail i desetke drugih.

imapsync ima reputaciju opsežnog i konfigurirajućeg alata. Administratori cijene njegovu granularnu kontrolu nad folderma za migraciju, upravljanje duplikatima i folderuranje imena folder između različitih IMAP servera. No unatoč toj kontroli, jedan problem ustrajava: datumi emailova često nisu sačuvani nakon imapsync migracije. Korisnici otvore svoj sanduče nakon migracije i ustanove da svaki email prikazuje datum migracije. Frustrirajuće, posebno jer bi imapsync trebao ispravno upravljati datumima.

Kako imapsync upravlja INTERNALDATE-om

Pokušaj očuvanja INTERNALDATE-a

imapsync doista pokušava sačuvati INTERNALDATE svakog emaila tijekom migracije. INTERNALDATE je vremenska oznaka koju IMAP server pohranjuje kao metapodatak za svaku poruku, odvojeno od zaglavlja emaila. Kad imapsync kopira poruku s izvora na odredište, čita INTERNALDATE izvornog servera i prosljeđuje ga odredišnom serveru u IMAP APPEND naredbi.

U teoriji, ovo bi trebalo sačuvati izvorni datum. U praksi, rezultat ovisi o ponašanju odredišnog servera i o tome kako klijenti elektroničke pošte tumače različita polja vezana uz datum u poruci.

Problem zaglavlja "Received"

Čak i kad imapsync uspješno sačuva INTERNALDATE, odredišni server elektroničke pošte dodaje novo zaglavlje "Received" svakoj poruci tijekom APPEND operacije. Ovo zaglavlje "Received" sadrži trenutnu vremenski pečat, datum migracije. Klijenti elektroničke pošte poput Outlooka, Apple Maila i Thunderbirda određuju prikazani datum "primitka" čitajući najgornje zaglavlje "Received", a ne INTERNALDATE. Dakle unatoč naporu imapsynca da sačuva INTERNALDATE, vidljivi datum u većini klijenata je svejedno kriv.

Upravo taj temeljni nesklad uzrokuje zabunu. imapsync čuva jednu vrednost datuma (INTERNALDATE), ali klijenti elektroničke pošte prikazuju drugu (vremenski pečat zaglavlja "Received"). Za tehnički uvid u ovaj mehanizam, pogledajte zašto emailovi prikazuju krivi datum nakon IMAP migracije.

Zabluda iz FAQ-a imapsynca

Dokumentacija i FAQ imapsynca obrađuju problem datuma, ali ga predstavljaju kao inherentno ograničenje. FAQ sugerira da se "datumi možda neće sačuvati" tijekom IMAP migracije i implicira da je to naprosto način na koji IMAP protokol funkcioniše. Iako je istina da IMAP protokol zahteva od servera da dodaju zaglavlja "Received" pri umetanju poruka, FAQ stvara utisak da je problem trajan i nepopravljiv.

To nije tačno. Zaglavlja "Received" dodana tijekom migracije mogu se identificirati i naknadno ukloniti, obnavljajući izvorni prikaz datuma u klijentima elektroničke pošte. Izvorno zaglavlje "Date" (koje beleži kad je email izvorno poslan) uvijek je sačuvano od strane imapsynca i služi kao referenca za ispravni datum.

Identificiranje imapsync migracijskog zaglavlja

Kako izgleda zaglavlje

imapsync sam ne dodaje zaglavlje "Received" - to radi odredišni IMAP server. Zaglavlje dodano tijekom imapsync migracije obično izgleda kao standardno IMAP zaglavlje umetanja odredišnog servera. Na primjer, pri migraciji na Dovecot server, zaglavlje bi moglo izgledati ovako:

Received: from localhost by mail.example.com;
  Wed, 15 Jan 2025 09:14:22 +0100

Ključni identifikator je da je ovo zaglavlje "Received" najgornje u lancu, njegova vremenska oznaka odgovara datumu pokretanja imapsync migracije, i obično referencira "localhost" ili naziv odredišnog servera umjesto vanjskog servera elektroničke pošte.

Usporedba datuma

Za potvrdu problema, uporedite vremenski pečat najgornjeg zaglavlja "Received" sa zaglavljem "Date" emaila. Ako zaglavlje "Received" prikazuje januar 2025. ali zaglavlje "Date" prikazuje mart 2020., migracijsko zaglavlje "Received" uzrok je krivog prikaza datuma. Ova poređenja može se napraviti pregledavajući izvorni tekst poruke u bilo kojem klijentu elektroničke pošte.

Zašto uobičajene opcije imapsynca ne rešavaju problem

Oznaka --syncinternaldates

imapsync nudi oznaku --syncinternaldates, koja postavlja INTERNALDATE na odredišnom serveru da odgovara zaglavlju "Date" emaila. Ovo je korisno kad je INTERNALDATE izvornog servera već kriv, ali ne sprečava odredišni server od dodavanja zaglavlja "Received". Vidljivi datum u Outlooku i drugim klijentima ostaje datum migracije bez obzira na vrednost INTERNALDATE-a.

Opcija --addheader

imapsync može dodati prilagođena zaglavlja porukama tijekom migracije, ali ne može spriječiti odredišni server od dodavanja vlastitog zaglavlja "Received". IMAP protokol zahteva od servera da bilježe vremenski pečat umetanja, i nikakva opcija imapsynca ne može nadjačati ovo ponašanje na razini servera.

Skripte nakon migracije

Neki administratori pišu prilagođene skripte nakon migracije za uklanjanje neželjenih zaglavlja "Received". Zvuči razumno, posebno za tip osobe koji je izabrala imapsync (netko tko je ugodan s naredbenim retkom). Ali stvarnost je daleko složenija od pretrage i zamjene teksta zaglavlja. Što se događa kad skripta naiđe na S/MIME potpisan email? Ili multipart poruku s ugniježđenim MIME granicama i base64 kodiranim prilozima? Ili zaglavlje s ne-ASCII znakovima kodiranim prema RFC 2047? Jedan jedini krivo postavljeni bajt u MIME granici može tiho oštetiti cijelu poruku, uništavajući priloge ili čineći email nečitljivim. A kako potvrditi da je svih 10.000 ispravljenih emailova netaknuto? Za hiljade emailova na više sandučadi, DIY skriptiranje predstavlja značajan rizik.

Ispravak imapsync datuma s Redate.io

Kako Redate.io obrađuje imapsync migracije

Vlasnički mehanizam za ispravke u Redate.io dizajniran je specifično za ovu kategoriju problema. Nakon spajanja na sanduče, Redate.io analizira svaki email i provodi svaku poruku kroz višestupanjski analitički cevovod. Za imapsync migracije, Redate.io otkriva zaglavlje "Received" koje je umetnuo server primjenom poređenje potpisa na stotinama poznatih migracijskih profila, analizom cjelokupnog lanca zaglavlja i unakrsnim uspoređivanjem vremenskih oznaka s izvornim zaglavljem "Date".

Ovo nije jednostavno uređivanje zaglavlja. Mehanizam za ispravke upravlja validacijom usklađenosti s RFC standardima, očuvanjem strukture poruke (uključujući multipart/alternative strukture, umetnute priloge i varijacije Content-Transfer-Encoding-a) i otkrivanjem digitalnih potpisa. Emailovi sa S/MIME ili PGP potpisima automatski se identificiraju i obrađuju na odgovarajući način za očuvanje celovitosti potpisa.

Što dobivate nakon ispravka

Svaki ispravljeni email prikazuje svoj izvorni datum primitka u svim klijentima elektroničke pošte. Kronološki poredak je obnovljen. Svaki ispravka prolazi provjeru celovitosti prije finalizacije. Izvorna poruka premjesti se u folder "Redate.io - Originals" i čuva 30 dana kao sigurnosna mreža.

Kompatibilnost sa svim odredišnim serverima

Budući da se imapsync koristi za migraciju na gotovo bilo koji IMAP server, Redate.io podržava isti raspon odredišnih platformi. Bilo da je imapsync migracija ciljala Dovecot, Courier, Cyrus, Zimbru, Google Workspace, Microsoft 365 ili bilo koji drugi IMAP server, Redate.io se spaja i ispravlja datume.

Kako ispraviti datume nakon imapsync migracije

Spojite sanduče

Prijavite se u Redate.io i dodajte sanduče. Za Google Workspace ili Microsoft 365, koristite opciju administratorske delegacije. Za ostale IMAP servere (uobičajene u imapsync scenarijima), unesite adresu servera, korisničko ime i lozinku. Redate.io se spaja putem standardnog IMAP-a.

Besplatna analiza

Pokrenite besplatnu analizu za identificiranje pogođenih emailova. Izvještaj analize prikazuje ukupan broj emailova, koliko ih ima krivi datum i koji datum migracije je otkriven. Ova analiza ne košta ništa i daje jasnu sliku prije bilo kakvog angažmana.

Ispravite i provjerite

Odaberite plan prema broju pogođenih emailova i pokrenite ispravka. Napredak je vidljiv u stvarnom vremenu. Nakon dovršetka, provjerite rezultate pregledavajući datume emailova u svom klijentu. Datumi bi se trebali vratiti na svoje mjesto.

Vodiči za ispravka imapsync po platformi

Česta pitanja

Trebam li koristiti --syncinternaldates imapsynca prije korištenja Redate.io?

Nije potrebno. Redate.io postavlja ispravan INTERNALDATE tijekom procesa ispravka, bez obzira na trenutnu vrednost. Bilo da je imapsync sačuvao izvorni INTERNALDATE ili ne, Redate.io izvodi ispravnu vrednost iz izvornog zaglavlja "Date".

Mogu li ispraviti datume na izvornom serveru prije migracije s imapsyncom?

Ako izvorni server već ima krive datume (zbog prethodne migracije), Redate.io ih može ispraviti prije ili nakon imapsync migracije. No ispravka datuma na odredišnom serveru nakon migracije je najčešći i najpraktičniji pristup.

Koliko emailova Redate.io može obraditi?

Redate.io upravlja sandučeima bilo koje veličine. Planovi su dostupni za do 100.000 emailova po sandučeu. Za organizacije s mnogo sandučadi, Redate.io nudi količinske popuste.

imapsync migracija je pokvarila datume? Pokrenite besplatnu analizu i saznajte koliko je emailova pogođeno te ih ispravite s Redate.io.