Miért népszerű az imapsync (és miért törnek el mégis a dátumok)
Az imapsync a Linux rendszergazdák, tárhelyszolgáltatók és mindenki számára az email migrációs referencia-eszköz, aki előnyben részesíti a nyílt forráskódú megoldásokat. Gilles Lamiral alkotása, az imapsync 2001 óta aktívan karbantartott, és világszerte milliónyi postafiók-migrációhoz használták. Gyakorlatilag minden IMAP-szervert támogat: Dovecot, Courier, Cyrus, Zimbra, Exchange, Gmail és tucatnyi mást.
Az imapsync a teljességéről és konfigurálhatóságáról híres. Az adminisztrátorok értékelik a migrálni kívánt mappák, a duplikátumkezelés és a különböző IMAP-szerverek közötti mappa-névleképezés feletti granulális kontrollt. De mindezen kontroll ellenére egy probléma fennmarad: az email dátumok gyakran nem őrződnek meg imapsync migráció után. A felhasználók megnyitják postafiókjukat a migráció után, és azt tapasztalják, hogy minden email a migráció dátumát mutatja. Kiábrándító, különösen azért, mert az imapsyncnak állítólag helyesen kellene kezelnie a dátumokat.
Hogyan kezeli az imapsync az INTERNALDATE-et
Az INTERNALDATE megőrzési kísérlet
Az imapsync valóban megpróbálja megőrizni minden email INTERNALDATE-jét a migráció során. Az INTERNALDATE az az időbélyeg, amelyet az IMAP-szerver metaadatként tárol minden üzenethez, elkülönítve az email fejléceitől. Amikor az imapsync egy üzenetet másol a forrásból a célhelyre, beolvassa a forrásszerver INTERNALDATE-jét és továbbítja a célszervernek az IMAP APPEND parancsban.
Elméletben ennek meg kellene őriznie az eredeti dátumot. A gyakorlatban az eredmény a célszerver viselkedésétől és attól függ, hogyan értelmezik a levelezőkliensek az üzenet különböző dátumhoz kapcsolódó mezőit.
A "Received" fejléc probléma
Még ha az imapsyncnak sikerül is megőriznie az INTERNALDATE-et, a cél levelezőszerver az APPEND művelet során egy új "Received" fejlécet ad minden üzenethez. Ez a "Received" fejléc az aktuális időbélyeget tartalmazza, vagyis a migráció dátumát. Az olyan levelezőkliensek, mint az Outlook, az Apple Mail és a Thunderbird a megjelenített "fogadási" dátumot a legfelső "Received" fejléc beolvasásával határozzák meg, nem az INTERNALDATE-ből. Tehát az imapsync INTERNALDATE megőrzésére tett erőfeszítése ellenére a legtöbb kliensben a látható dátum mégis hibás.
Ez az alapvető eltérés okozza a félreértést. Az imapsync megőriz egy dátumértéket (INTERNALDATE), de a levelezőkliensek egy másikat jelenítenek meg (a "Received" fejléc időbélyegét). A mechanizmus technikai részleteiért lásd: miért mutatnak rossz dátumot az emailek IMAP migráció után.
Az imapsync FAQ tévhite
Az imapsync dokumentáció és FAQ foglalkozik a dátumproblémával, de sajátos korlátozásként mutatja be. A FAQ azt sugallja, hogy "a dátumok nem feltétlenül őrződnek meg" az IMAP migráció során, és azt implikálja, hogy az IMAP protokoll egyszerűen így működik. Bár igaz, hogy az IMAP protokoll megköveteli a szerverektől a "Received" fejlécek hozzáadását az üzenetbeillesztés során, a FAQ azt a benyomást kelti, hogy a probléma végleges és javíthatatlan.
Ez nem pontos. A migráció során hozzáadott "Received" fejlécek utólag azonosíthatók és eltávolíthatók, visszaállítva az eredeti dátum megjelenítését a levelezőkliensekben. Az eredeti "Date" fejlécet (amely rögzíti, mikor küldték eredetileg az emailt) az imapsync mindig megőrzi, és ez szolgál referenciaként a helyes dátumhoz.
Az imapsync migrációs fejléc azonosítása
Hogyan néz ki a fejléc
Maga az imapsync nem ad hozzá "Received" fejlécet, a cél IMAP-szerver teszi ezt. Az imapsync migrációval hozzáadott fejléc általában a célszerver szokásos IMAP beillesztési fejlécének tűnik. Például Dovecot szerverre migrálva a fejléc így nézhet ki:
Received: from localhost by mail.example.com;
Wed, 15 Jan 2025 09:14:22 +0100
A kulcs azonosító az, hogy ez a "Received" fejléc a legfelső a láncban, időbélyege megegyezik az imapsync migráció futtatásának dátumával, és általában "localhost"-ra vagy a célszerver hosztnevére hivatkozik egy külső levelezőszerver helyett.
Dátumok összehasonlítása
A probléma megerősítéséhez hasonlítsa össze a legfelső "Received" fejléc időbélyegét az email "Date" fejlécével. Ha a "Received" fejléc 2025. januárt mutat, de a "Date" fejléc 2020. márciust, a migrációs "Received" fejléc okozza a hibás dátum megjelenítést. Ez az összehasonlítás bármely levelezőkliensben elvégezhető az üzenet nyers forrásának megtekintésével.
Miért nem oldják meg a problémat az imapsync szokásos opciói
A --syncinternaldates kapcsoló
Az imapsync kínálja a --syncinternaldates kapcsolót, amely a célszerveren az INTERNALDATE-et az email "Date" fejlécének megfelelően állítja be. Ez hasznos, amikor a forrásszerver INTERNALDATE-je már eleve hibás, de nem akadályozza meg a célszervert abban, hogy "Received" fejlécet adjon hozzá. Az Outlookban és más kliensekben a látható dátum az INTERNALDATE értéktől függetlenül a migrációs dátum marad.
Az --addheader opció
Az imapsync a migráció során egyéni fejléceket adhat az üzenetekhez, de nem akadályozhatja meg a célszervert abban, hogy saját "Received" fejlécét hozzáadja. Az IMAP protokoll megköveteli a szerverektől a beillesztési időbélyeg rögzítését, és semmilyen imapsync opció sem bírálhatja felül ezt a szerver szintű viselkedést.
Migráció utáni szkriptek
Egyes adminisztrátorok egyéni migráció utáni szkripteket írnak a nemkívánatos "Received" fejlécek eltávolítására. Ésszerűnek hangzik, különösen az olyan személyiségtípusnál, aki elsőként az imapsyncot választotta (valaki, aki otthonosan mozog a parancssorban). De a valóság jóval összetettebb, mint egy keresés-csere a fejléc szövegén. Mi történik, amikor a szkript egy S/MIME aláírású emailbe ütközik? Vagy egy multipart üzenetbe beágyazott MIME-határokkal és base64-kódolású mellékletekkel? Vagy egy RFC 2047 kódolású nem ASCII karaktereket tartalmazó fejlécbe? Egyetlen rosszul elhelyezett bájt egy MIME-határban csendben sértheti az egész üzenetet, megsemmisítve a mellékleteket vagy olvashatatlanná téve az emailt. És hogyan erősíthető meg, hogy 10 000 javított email mind sértetlen? Több ezer email és több postafiók esetén a házilag készített szkriptelés jelentős kockázatot jelent.
imapsync dátumok javítása a Redate.io-val
Hogyan kezeli a Redate.io az imapsync migrációkat
A Redate.io saját javítómotorja kifejezetten erre a problémakategóriára készült. A postafiókhoz csatlakozás után a Redate.io elemez minden emailt, és minden üzenetet egy többlépcsős elemzési folyamaton vezet át. imapsync migrációk esetén a Redate.io felismeri a szerver által beszúrt "Received" fejlécet, aláírás-illesztést alkalmazva ismert migrációs profilok százain, elemezve a teljes fejléc-láncot és az időbélyegeket az eredeti "Date" fejléccel összevetve.
Ez nem egy egyszerű fejlécszerkesztés. A javítómotor kezeli az RFC-megfelelőségi validálást, az üzenetszerkezet megőrzését (beleértve a multipart/alternative struktúrákat, beágyazott mellékleteket és Content-Transfer-Encoding változatokat), valamint a digitális aláírások felismerését. Az S/MIME vagy PGP aláírással rendelkező emailek automatikusan azonosításra és megfelelő kezelésre kerülnek az aláírás integritásának megőrzése érdekében.
Mit kap a javítás után
Minden javított email az eredeti fogadási dátumát mutatja minden levelezőkliensben. A kronológiai rend helyreáll. Minden javítás integritásellenőrzésen megy át a véglegesítés előtt. Az eredeti üzenet egy "Redate.io - Originals" mappába kerül és 30 napig megőrződik biztonsági hálóként.
Kompatibilitás minden célszerverrel
Mivel az imapsyncot gyakorlatilag bármely IMAP-szerverre történő migrációhoz használják, a Redate.io ugyanazt a széleskörű célplatform-támogatást nyújtja. Akár Dovecot, Courier, Cyrus, Zimbra, Google Workspace, Microsoft 365 vagy bármely más IMAP-szerver volt az imapsync migráció célpontja, a Redate.io csatlakozik és javítja a dátumokat.
Hogyan javíthatók a dátumok imapsync migráció után
A postafiók csatlakoztatása
Jelentkezzen be a Redate.io-ba és adja hozzá a postafiókot. Google Workspace vagy Microsoft 365 esetén használja az adminisztrátori delegálási opciót. Más IMAP-szervereknél (amelyek az imapsync forgatókönyveknél gyakoriak) adja meg a szervercímet, felhasználónevet és jelszót. A Redate.io szabványos IMAP-on keresztül csatlakozik.
Ingyenes elemzés
Futtassa az ingyenes elemzést az érintett emailek azonosításához. Az elemzési jelentés megmutatja az emailek összszámát, a hibás dátumúak számát és az észlelt migrációs dátumot. Ez az elemzés ingyenes, és egyértelmű képet ad bármilyen elköteleződés előtt.
Javítás és ellenőrzés
Válasszon csomagot az érintett emailek száma alapján és indítsa el a javítást. A folyamat valós időben követhető. A befejezés után ellenőrizze az eredményeket az email dátumok megtekintésével a kliensben. A dátumoknak vissza kell térniük a helyükre.
imapsync javítási útmutatók platformonként
Gyakran ismételt kérdések
Használnom kell az imapsync --syncinternaldates-t a Redate.io előtt?
Nem szükséges. A Redate.io a javítási folyamat során beállítja a helyes INTERNALDATE-et, függetlenül az aktuális értéktől. Akár megőrizte az imapsync az eredeti INTERNALDATE-et, akár nem, a Redate.io az eredeti "Date" fejlécből vezeti le a helyes értéket.
Javíthatók a dátumok a forrásszerveren az imapsync migráció előtt?
Ha a forrásszerveren már eleve hibásak a dátumok (egy korábbi migráció miatt), a Redate.io javíthatja azokat az imapsync migráció előtt vagy után. De a dátumok javítása a célszerveren a migráció után a leggyakoribb és legpraktikusabb megközelítés.
Hány emailt tud feldolgozni a Redate.io?
A Redate.io bármilyen méretű postafiókot kezel. Postafiókonként akár 100 000 emailig érhetőek el csomagok. Sok postafiókkal rendelkező szervezeteknek a Redate.io mennyiségi kedvezményes árazást kínál.
Az imapsync migráció elrontotta a dátumokat? Indítson egy ingyenes elemzést, és nézze meg, hány email érintett. Javítsa ki őket a Redate.io-val.