Miks imapsync on populaarne (ja miks kuupäevad ikkagi katki lähevad)
imapsync on e-posti migratsiooni referenstööriist Linuxi süsteemiadministraatoritele, hostingupakkujatele ja kõigile, kes eelistavad avatud lähtekoodiga lahendusi. Gilles Lamiral'i loodud imapsync on olnud aktiivselt hooldatud alates 2001. aastast ja seda on kasutatud miljoniteks postkastide migratsioonideks üle maailma. See toetab praktiliselt kõiki IMAP-servereid: Dovecot, Courier, Cyrus, Zimbra, Exchange, Gmail ja kümneid teisi.
imapsync on tuntud oma põhjalikkuse ja konfigureeritavuse poolest. Administraatorid hindavad selle granulaarset kontrolli migreeritavate kaustade üle, duplikaatide haldamist ja kaustamuutuste kaardistamist erinevate IMAP-serverite vahel. Kuid vaatamata kogu sellele kontrollile püsib üks probleem: e-kirjade kuupäevad ei säili sageli pärast imasynci migratsiooni. Kasutajad avavad postkasti pärast migratsiooni ja avastavad, et iga e-kiri näitab migratsiooni kuupäeva. See on ärritav, eriti seetõttu, et imapsync peaks kuupäevi korrektselt käsitlema.
Kuidas imapsync INTERNALDATE-t käsitleb
INTERNALDATE säilitamise katse
imapsync üritab tegelikult iga e-kirja INTERNALDATE-t migratsiooni käigus säilitada. INTERNALDATE on ajatempel, mida IMAP-server salvestab iga sõnumi metaandmetena, eraldi e-kirja päistest. Kui imapsync kopeerib sõnumi lähteserverist sihtkohta, loeb ta lähteserveri INTERNALDATE-t ja edastab selle sihtserverile IMAP APPEND käsus.
Teoreetiliselt peaks see algse kuupäeva säilitama. Praktikas sõltub tulemus sihtserveri käitumisest ja sellest, kuidas meilikliendid tõlgendavad erinevaid kuupäevaga seotud välju sõnumis.
"Received" päise probleem
Isegi kui imapsync säilitab INTERNALDATE edukalt, lisab sihtmeiliserver igale sõnumile APPEND toimingu käigus uue "Received" päise. See "Received" päis sisaldab praegust ajatemplit - migratsiooni kuupäeva. Meilikliendid nagu Outlook, Apple Mail ja Thunderbird määravad kuvatava "vastuvõtmise kuupäeva" kõige ülemise "Received" päise põhjal, mitte INTERNALDATE-st. Seega vaatamata imasynci püüdlusele INTERNALDATE-t säilitada, on enamikus klientides nähtav kuupäev ikkagi vale.
Just see fundamentaalne lahknevus põhjustab segadust. imapsync säilitab ühe kuupäevaväärtuse (INTERNALDATE), kuid meilikliendid kuvavad teist ("Received" päise ajatempel). Selle mehhanismi tehnilise süvitsi käsitluse jaoks vaadake miks e-kirjad näitavad pärast IMAP-migratsiooni valet kuupäeva.
imasynci KKK vääriarusaam
imasynci dokumentatsioon ja KKK käsitlevad kuupäevaprobleemi, kuid esitavad seda loomupärase piiranguna. KKK vihjab, et "kuupäevad ei pruugi IMAP-migratsiooni käigus säilida" ja annab mõista, et nii IMAP-protokoll lihtsalt töötab. Kuigi on tõsi, et IMAP-protokoll nõuab serveritelt sõnumite sisestamisel "Received" päiste lisamist, loob KKK mulje, et probleem on püsiv ja parandamatu.
See ei ole täpne. Migratsiooni käigus lisatud "Received" päised on tuvastatavad ja eemaldatavad tagantjärele, taastades algse kuupäeva kuvamise meiliklientides. Algne "Date" päis (mis registreerib, millal e-kiri algselt saadeti) on alati imasynci poolt säilitatud ja on õige kuupäeva viitepunktiks.
imasynci migratsiooni päise tuvastamine
Kuidas päis välja näeb
imapsync ise ei lisa "Received" päist - seda teeb siht-IMAP-server. imasynci migratsiooni käigus lisatud päis näeb tavaliselt välja nagu sihtserveri standardne IMAP-sisestuse päis. Näiteks Dovecot'i serverile migreerimisel võib päis välja näha nii:
Received: from localhost by mail.example.com;
Wed, 15 Jan 2025 09:14:22 +0100
Peamine tunnus on see, et see "Received" päis on ahelas kõige ülemine, selle ajatempel vastab imasynci migratsiooni käivitamise kuupäevale ja see viitab tavaliselt "localhost'ile" või sihtserveri hostinimele, mitte välisele meiliserverile.
Kuupäevade võrdlemine
Probleemi kinnitamiseks võrrelge kõige ülemise "Received" päise ajatemplit e-kirja "Date" päisega. Kui "Received" päis näitab jaanuari 2025, aga "Date" päis näitab märtsi 2020, on migratsiooni "Received" päis vale kuupäevakuvamise põhjus. Seda võrdlust saab teha, vaadates sõnumi tooreallikat mis tahes meilikliendis.
Miks levinud imasynci valikud probleemi ei lahenda
--syncinternaldates lipp
imapsync pakub --syncinternaldates lippu, mis seab sihtserveri INTERNALDATE e-kirja "Date" päisele vastavaks. See on kasulik, kui lähteserveri INTERNALDATE on juba vale, kuid ei takista sihtserverit "Received" päise lisamast. Outlookis ja teistes klientides nähtav kuupäev jääb migratsiooni kuupäevaks olenemata INTERNALDATE väärtusest.
--addheader valik
imasynci --addheader valik lisab sõnumitele kohandatud päiseid migratsiooni käigus. Mõned administraatorid kasutavad seda migratsiooni märgistamiseks, kuid see ei takista sihtserverit oma "Received" päise lisamist. Kohandatud päiste lisamine ei mõjuta seda, kuidas Outlook, Apple Mail või Thunderbird vastuvõtmise kuupäeva määravad.
imasynci kuupäevade parandamine Redate.io-ga
Kuidas Redate.io tuvastab imasynci migratsioone
Muide, imasynci migratsioonide tuvastamine on keerulisem kui kommertstööriistade puhul. BitTitani ja CloudM-i migratsioonid jätavad selgeid allkirju ("mx.migrationwiz.com", "cloudm.io"), kuid imasynci migratsiooni "Received" päis tuleb sihtserverilt ja näeb välja nagu iga teine IMAP-sisestuse päis. Redate.io patenteeritud parandusmootor kasutab mustrituvastust mitme signaali alusel: päise struktuuri analüüs, ajatempli korrelatsioon teadaolevate migratsiooni mustritega ja INTERNALDATE lahknevuste tuvastamine.
Parandusprotsess
Redate.io ühendub postkastiga (Google Workspace, Microsoft 365 või mis tahes IMAP-server) ja käivitab tasuta skannimise. Skannimine tuvastab kõik e-kirjad migratsiooni kuupäevaprobleemidega. Pärast tulemuste ülevaatamist töötleb parandusmootor iga mõjutatud e-kirja: analüüsib päiseahelat, rakendab sihipäraseid metaandmete parandusi läbi mitmeetapilise pipeline'i ja kontrollib iga parandust enne lõplikustamist. Algsed sõnumid säilitatakse nähtavas varukaustas 30 päeva.
Alustage tasuta skannimisega: registreerige Redate.io-s.