imapsync: datumi nisu sačuvani, potpuni vodič

7 min

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

imapsync ima reputaciju opsežnog i konfigurirajućeg alata. Administratori cijene njegovu granularnu kontrolu nad mapama za migraciju, upravljanje duplikatima i mapiranje imena mapa između različitih IMAP poslužitelja. No unatoč toj kontroli, jedan problem ustrajava: datumi emailova često nisu sačuvani nakon imapsync migracije. Korisnici otvore svoj sandučić 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 poslužitelj pohranjuje kao metapodatak za svaku poruku, odvojeno od zaglavlja emaila. Kad imapsync kopira poruku s izvora na odredište, čita INTERNALDATE izvornog poslužitelja i prosljeđuje ga odredišnom poslužitelju u IMAP APPEND naredbi.

U teoriji, ovo bi trebalo sačuvati izvorni datum. U praksi, rezultat ovisi o ponašanju odredišnog poslužitelja 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 poslužitelj elektroničke pošte dodaje novo zaglavlje "Received" svakoj poruci tijekom APPEND operacije. Ovo zaglavlje "Received" sadrži trenutnu vremensku oznaku, 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 vrijednost datuma (INTERNALDATE), ali klijenti elektroničke pošte prikazuju drugu (vremensku oznaku 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 funkcionira. Iako je istina da IMAP protokol zahtijeva od poslužitelja da dodaju zaglavlja "Received" pri umetanju poruka, FAQ stvara dojam da je problem trajan i nepopravljiv.

To nije toč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 biljež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 poslužitelj. Zaglavlje dodano tijekom imapsync migracije obično izgleda kao standardno IMAP zaglavlje umetanja odredišnog poslužitelja. Na primjer, pri migraciji na Dovecot poslužitelj, 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 poslužitelja umjesto vanjskog poslužitelja elektroničke pošte.

Usporedba datuma

Za potvrdu problema, usporedite vremensku oznaku najgornjeg zaglavlja "Received" sa zaglavljem "Date" emaila. Ako zaglavlje "Received" prikazuje siječanj 2025. ali zaglavlje "Date" prikazuje ožujak 2020., migracijsko zaglavlje "Received" uzrok je krivog prikaza datuma. Ova usporedba može se napraviti pregledavajući izvorni tekst poruke u bilo kojem klijentu elektroničke pošte.

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

Oznaka --syncinternaldates

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

Opcija --addheader

imapsync može dodati prilagođena zaglavlja porukama tijekom migracije, ali ne može spriječiti odredišni poslužitelj od dodavanja vlastitog zaglavlja "Received". IMAP protokol zahtijeva od poslužitelja da bilježe vremensku oznaku umetanja, i nikakva opcija imapsynca ne može nadjačati ovo ponašanje na razini poslužitelja.

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 pretraživanja 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 privicima? 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 privitke ili čineći email nečitljivim. A kako potvrditi da je svih 10.000 ispravljenih emailova netaknuto? Za tisuće emailova na više sandučića, 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čić, Redate.io analizira svaki email i provodi svaku poruku kroz višestupanjski analitički cjevovod. Za imapsync migracije, Redate.io otkriva zaglavlje "Received" koje je umetnuo poslužitelj primjenom usporedbe 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 privitke 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 cjelovitosti 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 ispravak prolazi provjeru cjelovitosti prije finalizacije. Izvorna poruka premjesti se u mapu "Redate.io - Originals" i čuva 30 dana kao sigurnosna mreža.

Kompatibilnost sa svim odredišnim poslužiteljima

Budući da se imapsync koristi za migraciju na gotovo bilo koji IMAP poslužitelj, 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 poslužitelj, Redate.io se spaja i ispravlja datume.

Kako ispraviti datume nakon imapsync migracije

Spojite sandučić

Prijavite se u Redate.io i dodajte sandučić. Za Google Workspace ili Microsoft 365, koristite opciju administratorske delegacije. Za ostale IMAP poslužitelje (uobičajene u imapsync scenarijima), unesite adresu poslužitelja, 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 ispravak. 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 ispravak 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 vrijednost. Bilo da je imapsync sačuvao izvorni INTERNALDATE ili ne, Redate.io izvodi ispravnu vrijednost iz izvornog zaglavlja "Date".

Mogu li ispraviti datume na izvornom poslužitelju prije migracije s imapsyncom?

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

Koliko emailova Redate.io može obraditi?

Redate.io upravlja sandučićima bilo koje veličine. Planovi su dostupni za do 100.000 emailova po sandučiću. Za organizacije s mnogo sandučića, 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.