cPanel migráció után hibás e-mail-dátumok

Olvasási idő: 7 perc Utolsó frissítés:

A hétfő reggel, amelyre senki sem számít

Épp befejeztük egy cPanel-es megosztott tárhelyen lévő postafiók-rendszer átköltöztetését Google Workspace-be vagy Microsoft 365-be. A migráció simán ment, a postaládák elérhetők, a felhasználók be tudnak lépni. Majd 9:15 körül megérkezik az első support-jegy: „A régi emailjeim mind ugyanazt a dátumot mutatják, a múlt hétvégéét." Aztán a második. Aztán tíz.

Ez nem egyedi hiba. Közvetlen következménye annak, ahogyan a cPanel-ről induló migrációk kezelik (vagy inkább nem kezelik) az emailek dátum-metaadatait.

cPanel, Roundcube, Horde: egy sajátos IMAP-környezet

Egy megosztott cPanel-es tárhelyszolgáltatás egy Linux-szerver, amelyen egy IMAP-szerver (jellemzően Dovecot) fut, Roundcube vagy Horde webmail felülettel. Semmi különös nincs ebben. Csakhogy ennek a környezetnek van néhány sajátossága, amitől a vállalati platformokra való migráció bonyolultabb, mint amilyennek látszik.

Egyrészt a cPanel-es postafiókok évek, néha egy évtized alatt halmozzák fel az e-maileket. Egy ügyfél, akinek a domainje 2013 óta van megosztott tárhelyen, nagyon mély archívummal rendelkezhet. Ez a mennyiség, a migráció végrehajtásának módjával együtt, termékeny táptalajt ad a dátumhibának.

Ráadásul az ilyen migrációkhoz gyakran a natív cPanel-eszközt (a WHM "Migrations" funkcióját), a parancssorból a tárhelyszolgáltató vagy IT-tanácsadó által futtatott imapsync-et, vagy olyan felhasználói szintű megoldásokat használnak, mint a GSMMO a Google Workspace-be történő migráláshoz.

Miért romlanak el a dátumok egy cPanel-migráció után

A probléma megértéséhez két különböző fogalmat kell megérteni: az e-mail Date: fejsorát és az IMAP INTERNALDATE-jét.

A Date: fejsor a nyers üzenettörzsbe kerül beírásra a küldés időpontjában, az RFC 2822 szerint. Azt rögzíti, mikor íródott és küldték el az e-mailt. Ez a fejsor soha nem változik, hacsak valaki szándékosan nem módosítja az üzenetet.

Az INTERNALDATE ezzel szemben egy metaadat, amelyet az IMAP-szerver minden tárolt üzenethez hozzárendel. Elkülönül az üzenet tartalmától magától. Amikor egy e-mail normál módon érkezik meg egy szerverre, az INTERNALDATE-et a Received: fejsorokból vezetik le, vagy a beérkezés időbélyegéből, ha az üzenetet közvetlenül nyújtják be. Ezt az értéket használja az Outlook, a Thunderbird és a legtöbb e-mail-kliens az üzenetek rendezésére.

Egy IMAP-migráció során az üzeneteket az egyik szerverről a másikra másolják. A probléma: a migrációs eszköznek létre kell hoznia minden üzenetet a célszerveren. És sok eszköz esetében az újonnan létrehozott üzenet INTERNALDATE-je a migráció dátumára áll be, nem az eredeti üzenet dátumára. Ráadásul egy, a migráció dátumára bélyegzett Received: fejsor kerül a fejsorlánc elejére, ami még jobban megzavarja azokat az e-mail-klienseket, amelyek ebből számítják ki a megjelenített dátumot.

Az eredmény: egy 2019-es e-mail a Google Workspace-en olyan INTERNALDATE-tel landol, amely a migráció napjára van állítva, és egy tegnapra bélyegzett Received: fejsorral. Az Outlook úgy jeleníti meg a postafiókban, mintha az épp most érkezett volna. A teljes archívum-idővonal tönkremegy.

A WHM / cPanel migrációs eszköz

A WHM-be beépített, cPanel-fiókok másik platformra migrálására szolgáló eszköz ezt a problémát csaknem szisztematikusan előidézi, ha a cél egy külső IMAP-szerver (Google Workspace, Microsoft 365). A Maildir-tartalmat úgy másolja az új szerverre, hogy nem őrzi meg az eredeti INTERNALDATE-et. Minden üzenet a művelet időbélyegét kapja.

imapsync és a cPanel-ből induló kézi migrációk

Az imapsync egy erőteljes eszköz, de az alapértelmezett viselkedése nem mindig őrzi meg a dátumokat. A megfelelő paraméterek (és a megfelelő verzió) nélkül könnyen megeshet, hogy 40 000 üzenetet másol le, és mindegyiket a szkript futtatásának dátumával bélyegzi meg. (Ha már végigment imapsync-naplókon sorról sorra, hogy diagnosztizáljon egy dátumhibát egy 25 000 üzenetes postafiókon, tudja, hogy ez egy olyan tapasztalat, amit nem szeretne megismételni.)

Pontosabban: az imapsync-nek vannak olyan opciói, amelyek próbálják megőrizni a dátumokat, de ezek az opciók a forrás- és célszervertől függően eltérően viselkednek, és hatékonyságuk nem garantált minden cPanel / Dovecot konfigurációnál.

GSMMO és a felhasználói szintű eszközök

A Google Workspace Migration for Microsoft Outlook (GSMMO) az Outlookból való migrálásra készült, nem egy sima IMAP-szerverről. Amikor cPanel-ből migrálnak vele (egy Outlookban beállított IMAP-fiók révén), a dátumok ugyanazt a kezelést kapják: a Google Workspace-en az INTERNALDATE a migráció dátumára áll be. A GSMMO e-mail-dátum problémája egy külön dokumentált téma, ennyire gyakori.

Mely e-mail-klienseket érinti?

A dátumhiba nem minden kliensben jelenik meg egyformán.

Az Outlook a legrosszabbul érintett. Az INTERNALDATE-et (vagy a migráció Received: fejsorát) használja a mappák elsődleges rendezési kulcsaként. Egy rosszul kezelt cPanel-migráció után egy Outlook-postafiók több ezer archivált e-mailt mutathat a migrációs hétvége dátumával. Az imapsync migrációs dátumok javítása az Outlookban egyike a leggyakrabban kért javításoknak.

A Gmail (Google Workspace) az üzenetlistában általában a Date: fejsorból származó dátumot jeleníti meg, de a rendezést egyes esetekben az INTERNALDATE mégis befolyásolhatja. Felhasználók kiszámíthatatlan viselkedésről számolnak be a keresésben és a dátum szerinti rendezésben.

Az Apple Mail és a Thunderbird még következetlenebbül viselkedik, de egyikük sem mentes a problémától, különösen ha egy migrációs Received: fejsor áll a fejsorlánc tetején.

Jó hír: az eredeti dátum még ott van

Ez az a technikai részlet, amely mindent megváltoztat. Az eredeti Date: fejsor a nyers üzenettörzsbe van beírva. A migráció nem érinti azt. Amikor megnyit egy érintett e-mailt, és megnézi a nyers fejsorokat (Gmailben: "Show original", Outlookban: File > Properties), láthatja az eredeti Date:-et sértetlenül, majd egy vagy több Received: fejsort, amelyek közül az első a migráció dátumát viseli.

Ez az információ még ott van. Felhasználható a metaadatok javítására. Pontosan ezt teszi a Redate.io javítómotorja.

Miért kockázatosabb "csak magától megjavítani", mint amilyennek látszik

A kísértés valódi. A probléma egyszerűnek látszik: olvassa el az eredeti dátumot, javítsa ki a metaadatot, és kész. De jelentős szakadék van a mechanizmus megértése és 12 000 éles e-mail javítása között úgy, hogy egyetlen egy se vesszen el.

Néhány valóság, amivel a saját készítésű szkriptek jellemzően nem számolnak:

  • S/MIME-mel aláírt vagy PGP-vel titkosított e-mailek: az üzenet szerkezetének bármilyen módosítása érvényteleníti a kriptográfiai aláírást. Egy e-mail, amely javítás előtt átment az aláírás-ellenőrzésen, utána nem fog. A szabályozott környezetekben dolgozó felhasználók (ügyvédi irodák, pénzügyi szektor, egészségügy) a legrosszabb pillanatban fedezik fel ezt a problémát.
  • Nem ASCII fejsorok és RFC 2047 kódolás: a cPanel-es postafiókok évek óta halmozzák fel a nagyon eltérő kliensekből származó e-maileket. Egyes fejsorok RFC 2047 szerint kódolt karaktereket tartalmaznak. Egy rosszul megírt szkript, amely újraépíti a fejsorokat, csendben megrongálhatja ezeket a kódolásokat.
  • Egymásba ágyazott MIME-struktúrák: egy három mellékletet és egy alternatív HTML-törzset tartalmazó e-mail összetett multipart-szerkezetű. A legkisebb hiba a MIME-határokon olvashatatlanná teszi az üzenetet, vagy rosszabb esetben: a mellékletek eltűnnek, hibaüzenet nélkül.
  • API-kvóták és sebességkorlátozás: a Google Workspace és a Microsoft 365 szigorú korlátokat érvényesít a percenkénti IMAP-műveletekre. Egy szkript, amely nem alkalmaz megfelelő exponenciális visszalépést, hajnali 3-kor 429-es hibákba ütközik, és arra ébred, hogy egy félig befejezett migráció áll, anélkül, hogy pontosan tudná, hol állt meg.
  • Nincs visszaállítási lehetőség: ha valami félúton elromlik, milyen állapotba tér vissza? Megvannak még az eredetik? Vannak duplikátumok? A Redate.io az eredetiket egy jól látható biztonsági másolat mappájában tartja a saját postafiókjában, pontosan azért, hogy soha ne kerüljön ilyen helyzetbe.
  • Egy szkript, amely 50 teszt-e-mailen működik egy fejlesztői környezetben, nem feltétlenül fog helytállni 18 000 üzenettel egy 2011 óta futó cPanel-fiókból örökölt éles postafiókban.

    Hogyan javítja a Redate.io a dátumokat egy cPanel-migráció után

    A Redate.io közvetlenül csatlakozik a célpostafiókhoz (Google Workspace, Microsoft 365 egyszerű bejelentkezéssel, vagy közvetlen IMAP), és egy ingyenes átvizsgálással kezd, hogy azonosítsa azokat az e-maileket, amelyeknek a dátum-metaadata nem egyezik az eredeti Date: fejsorral.

    A többlépcsős elemzési folyamat ezután minta-egyeztetést alkalmaz a Received: fejsor-jelekre, hogy azonosítsa a migrációs eszközök által beszúrtakat (és megkülönböztesse azokat a jogszerű fejsoroktól). A célzott metaadat-javítás az üzenet tartalmának módosítása nélkül történik: a szövegtörzs, a mellékletek, az eredeti fejsorok, minden sértetlen marad. Minden javított e-mailt egyenként ellenőriznek, mielőtt a művelet megerősítésre kerül.

    A cPanel-migrációk esetében a motor felismeri a Dovecot-IMAP migrációk és az imapsync-szkriptek jellemző jeleit, beleértve a megosztott tárhelyszolgáltatók között gyakori konfigurációs változatokat is.

    Célplatform szerinti útmutatók

    A cPanel-migrációja hova érkezett, ezek az útmutatók a pontos lépéseket írják le:

  • Imapsync migrációs dátumok javítása a Gmailben (Google Workspace)
  • Imapsync migrációs dátumok javítása a Microsoft 365-ben
  • Imapsync migrációs dátumok javítása a Google Workspace-ben
  • E-mail-dátumok javítása Google Workspace-migráció után
  • E-mail-dátumok javítása Microsoft 365-migráció után
  • cPanel-ből migrált, és a felhasználók hibás dátumokat látnak? Indítson egy ingyenes átvizsgálást a Redate.io-n, hogy pontosan megtudja, hány e-mailt érint a probléma, mielőtt bármilyen módosítás történne a jóváhagyása nélkül.

    Kapcsolódó cikkek