Modificarea datei unui email primit: limite tehnice

8 min

Un email are trei "date". Nu una.

Când vorbim despre "modificarea datei de recepție a unui email", majoritatea oamenilor își imaginează că schimbă un câmp undeva, cum ar modifica data de creare a unui fișier în Windows. Realitatea e un pic mai complicată. Un email transportă de fapt trei straturi distincte de datare, fiecare cu propriile reguli, propriii gardieni și propriile consecințe dacă le atingi.

Să înțelegi aceste trei straturi înseamnă să înțelegi de ce anumite corecții sunt tehnic sănătoase, iar altele sunt fie imposibile, fie imediat detectabile ca falsificări.

Stratul 1: INTERNALDATE IMAP

INTERNALDATE este o metadată stocată pe server, în afara mesajului propriu-zis. Nu face parte din conținutul emailului. Serverul IMAP o definește, iar majoritatea clienților de email o folosesc pentru a sorta mesajele în listă.

Outlook, de exemplu, afișează implicit mesajele sortate după INTERNALDATE. Gmail la fel, în anumite contexte. Prin urmare, dacă INTERNALDATE-ul dumneavoastră este greșit, toate emailurile par să aibă aceeași dată în interfață, indiferent ce spun anteturile interne ale mesajului.

INTERNALDATE este definit în momentul în care mesajul este depus pe server. Prin protocolul IMAP, singura modalitate de a-l "modifica" este indirectă: trebuie să folosiți comanda APPEND pentru a depune o nouă copie a mesajului cu data dorită. Nu există o comandă IMAP SETINTERNALDATE. Acest detaliu va conta în momentul următor.

Stratul 2: antetul Date: (RFC 2822)

Acesta este câmpul Date: din anteturile brute ale mesajului. Este definit de clientul de email în momentul trimiterii și călătorește cu mesajul de pe un server pe altul. Este data de trimitere declarată de expeditor.

(Apropo, dacă nu ați privit niciodată anteturile brute ale unui email, e o lectură destul de surprinzătoare. Fiecare mesaj trage după el vreo douăzeci de rânduri tehnice pe care 99% dintre oameni nu le-au văzut niciodată.)

Tehnic, nimic nu împiedică trimiterea unui email cu câmpul Date: backdatat sau postdatat. Serverele SMTP nu validează acest câmp. Dar serverele destinatare notează ora reală de sosire în anteturile Received:, ceea ce creează imediat o incohernță vizibilă pentru orice client de email sau instrument de analiză.

Stratul 3: anteturile Received: stivuite

De fiecare dată când un server SMTP relayează un mesaj, adaugă un antet Received: în vârful stivei, cu un timestamp. Un email trecut prin trei servere va avea trei antete Received:. Se citesc de jos în sus: cel mai vechi e jos, cel mai recent e sus.

Exact aici creează instrumentele de migrare problema. Când BitTitan MigrationWiz, CloudM, imapsync sau GSMMO migrează un email, îl reintroduc pe noul server prin IMAP. Această depunere generează o nouă intrare Received: timestampată în momentul migrării. Rezultat: cel mai vechi mesaj din căsuța dumneavoastră, un email din 2019, ajunge să aibă un Received: datat în noiembrie 2024. Iar cum anumiți clienți de email (Outlook în frunte) folosesc cel mai recent Received: ca dată de afișare...

Asta e problema. 15.000 de emailuri afișează toate aceeași dată de migrare. Dacă vă regăsiți în această situație, articolul despre IMAP INTERNALDATE și datele stricate explică mecanismul în detaliu.

Puteți modifica cu adevărat aceste date?

Tehnic, da pentru INTERNALDATE (cu constrângeri). Tehnic posibil dar inutil pentru Date:. Iar pentru Received:, merită să ne oprim un moment.

Rescrierea unui antet Received: e simplă. Și imediat detectabilă.

Un antet Received: nu e decât o linie de text în mesaj. Poate fi editat ca orice fișier text. E exact la fel de simplu pe cât pare.

Dar iată ce se întâmplă după.

Prima problemă: DKIM. Semnătura DKIM (DomainKeys Identified Mail) este calculată pe un set de antete ale mesajului, uneori inclusiv Received:. Modificarea unui antet semnat invalidează semnătura. Orice server destinatar care verifică DKIM va vedea imediat că mesajul a fost alterat. Nu e o falsificare subtilă, e o alarmă.

A doua problemă: identificatorii interni. Serverele de email moderne (Google Workspace, Microsoft 365) atribuie fiecărui mesaj un identificator intern crescător și unic. Acești identificatori sunt legați de INTERNALDATE și de ordinea de recepție. Modificarea unui Received: fără coerență cu acești identificatori creează inconsistențe pe care instrumentele de audit le detectează fără dificultate.

A treia problemă, mai practică: chiar dacă modificați Received: în conținutul mesajului, nu ați atins INTERNALDATE-ul, care rămâne cel al depunerii IMAP. Clientul de email continuă să afișeze data greșită la sortare. Ați modificat mesajul degeaba.

Pe scurt. Rescrierea anteturilor Received: pentru falsificarea datei unui email în scop malițios: simplu tehnic, detectabil în câteva secunde de un expert. Nu e o cale serioasă.

Antetul Date:: schimbarea trecutului pe hârtie

Același raționament pentru Date:. Poate fi modificat în corpul mesajului. Dar anteturile Received: autentificate de serverele intermediare rămân intacte și spun o altă poveste. Lanțul temporal e incoherent. Orice analist sau tribunal care compară aceste câmpuri va vedea imediat discrepanța.

Ca să fiu precis, asta nu împiedică anumiți clienți de email să afișeze Date:-ul modificat dacă li se prezintă direct fișierul .eml. Dar în contextul unui server de email live, cu autentificare și jurnale, modificarea e transparentă.

Migrarea IMAP: singurul context unde corectarea datelor e justificată

Există un singur caz în care modificarea datei de recepție a unui email este nu doar posibilă, ci tehnic justificată: corectarea daunelor cauzate de o migrare IMAP prost gestionată.

Iată situația concretă. Tocmai ați migrat 80 de căsuțe Exchange spre Microsoft 365. Migrarea s-a terminat vineri seara. Luni dimineața, primele tichete încep să sosească: „Toate emailurile mele au aceeași dată", „Nu pot găsi un email de anul trecut", „Istoricul cu acest client e complet distrus". Aveți 80 de utilizatori blocați și managerul care așteaptă un răspuns.

În acest context, problema e documentată, identificabilă, și cauza e clară: instrumentul de migrare a adăugat un Received: datat în ziua migrării, iar anumiți clienți de email folosesc acest nou antet ca dată de afișare. Antetul Date: original este intact în fiecare mesaj. Nu a fost niciodată modificat. Conține încă data de trimitere originală, corectă.

Corecția nu e deci o falsificare: e o restaurare. Se pornește de la date adevărate (originalul Date:) pentru a reconstrui metadate coerente. E fundamental diferit de a încerca să faci un email din 2024 să pară un email din 2019.

Pentru detalii despre mecanismele specifice fiecărui instrument, aceste ghiduri acoperă cazurile concrete: corectarea datelor BitTitan în Microsoft 365, corectarea datelor CloudM în Outlook, sau corectarea datelor imapsync în Google Workspace.

De ce să nu scrieți singur un script

Logica de bază e accesibilă. Orice admin IT care a petrecut timp pe forumuri IMAP poate reconstitui abordarea generală. Nu asta e problema.

Problema e distanța dintre un script care funcționează pe 50 de emailuri de test și un script care rulează pe 40.000 de mesaje în producție fără să piardă un singur email, fără să corupă o singură atașare și fără să spargă un singur fir de conversație.

Câteva cazuri concrete pe care scripturile improvizate nu le gestionează de obicei:

  • Emailuri semnate S/MIME: semnătura acoperă conținutul și anteturile. Orice modificare a structurii mesajului invalidează semnătura. Un email semnat corectat stângaci ajunge ca „semnătură invalidă" la destinatari.
  • Mesaje criptate PGP: aceeași familie de probleme, cu consecințe potențial mai grave în funcție de implementare.
  • Encodări non-ASCII în antete: RFC 2047 descrie encodarea caracterelor speciale în antete. Un script care manipulează antetele fără să gestioneze aceste cazuri va corupe silențios subiectele emailurilor cu accente, caractere japoneze sau nume arabe.
  • Limite de rată API: Google Workspace și Microsoft 365 implementează throttling agresiv. La 3 dimineața, un batch de 10.000 de emailuri care se lovește de o eroare 429 Too Many Requests fără gestionare de backoff exponențial lasă jumătate din căsuțe pe jumătate corectate.
  • Frontiere MIME corupte: mesajele multipart cu atașamente au frontiere MIME precise. Regenerarea lor incorectă face atașamentele ilizibile.

Și întrebarea la care niciun script improvizat nu răspunde: cum verificați că fiecare email corectat e intact? Un script care modifică 40.000 de mesaje fără verificare individuală e un pariu. Un pariu pe date pe care utilizatorii dumneavoastră le consideră adesea de neînlocuit.

Articolul despre opțiunile disponibile pentru corectarea datelor după migrare explorează diferitele abordări, inclusiv limitele lor respective.

Ce face Redate.io în acest context

Redate.io este conceput specific pentru acest caz: corectarea datelor corupte de o migrare IMAP, la scară mare, fără risc pentru integritatea mesajelor.

Serviciul se conectează direct la căsuțele afectate (Google Workspace prin delegare de domeniu, Microsoft 365 prin Azure AD, sau IMAP direct), scanează gratuit mesajele cu date incorecte, apoi aplică un pipeline de corecție proprietar care gestionează cazurile limită documentate mai sus. Fiecare email este verificat individual după corecție. Originalele rămân într-un folder de backup vizibil timp de 30 de zile.

Potrivirea de tipare acoperă sute de semnături ale instrumentelor de migrare cunoscute: BitTitan MigrationWiz, CloudM, imapsync, GSMMO și variantele lor. Detecția e precisă: Redate.io nu atinge emailurile a căror dată este corectă.

Modelul tarifar e simplu: plată unică per căsuță de email, fără abonament. Scanul de diagnostic e gratuit, ceea ce permite evaluarea amplitudinii daunelor înainte de orice decizie.

Dacă administrați căsuțe afectate de această problemă, articolul despre datele greșite în Outlook după migrare detaliază cele mai frecvente simptome și cum să le distingeti de alte cauze.

Gata să măsurați amploarea problemei pe căsuțele dumneavoastră? Lansați un scan gratuit pe Redate.io și vedeți exact câte emailuri sunt afectate înainte de orice corecție.

Articole conexe