RE:NODE

Hosting aplikací12 min čtení

Přesun e-mailu na vlastní server bez ztráty pošty

Přesuň schránky z Gmailu, Microsoftu 365 nebo hostingu na vlastní poštovní server: kopírování přes imapsync, bezpečné přepnutí MX a zachování celého starého archivu.

1 čtenář

Přesun e-mailu na nový server je bezpečný, když ho uděláš ve správném pořadí: vytvoř schránky na novém serveru, zkopíruj stávající poštu pomocí imapsync, dokud ji starý poskytovatel ještě přijímá, sniž TTL záznamu MX, přepni MX, spusť imapsync podruhé, aby sebral, co dorazilo během přepnutí, a teprve potom přepni poštovní klienty uživatelů. Staré účty nech ještě několik týdnů. V tomhle pořadí se neztratí jediná zpráva a nikdo nezůstane den bez pošty. V jakémkoli jiném - klasika je nejdřív přepnout DNS a kopírovat později - se pošta při propagaci ztratí a nejde ji získat zpět.

Tento článek provede celým přesunem: co se přenese a co ne, příkazy imapsync, zvláštnosti Gmailu a Microsoftu 365, přepnutí DNS a uchování starého archivu.

Co se přes IMAP přenese a co ne#

IMAP přenáší poštu a složky. Všechno ostatní, co za tebe poskytovatel pošty drží, putuje jinou cestou, nebo vůbec.

PoložkaPřenese imapsyncJak ji přenést jinak
Zprávy a přílohyAno-
Struktura složekAno-
Příznaky přečteno, označeno a zodpovězenoAno-
Původní data přijetíAno-
Štítky GmailuJako složky, s duplicitamiViz sekce o Gmailu
KontaktyNeExportovat jako vCard (.vcf)
KalendářeNeExportovat jako iCalendar (.ics)
Serverová pravidla a filtryNePřepsat jako pravidla Sieve
Aliasy a přeposílací adresyNeZnovu vytvořit v administraci nového serveru
HeslaNeNastavit nová, oznámit uživatelům
Podpisy, nastavení klientůŽijí v klientoviObvykle přežijí, pokud se klient používá dál

Než začneš, sepiš si seznam věcí mimo IMAP pro svou organizaci. Samotná pošta je ta snadná část; rozbije se alias, na který chodí všechny faktury a o kterém si nikdo nepamatoval, že existuje.

Než začneš: inventura a velikosti#

Pro každou schránku shromáždi: adresu, všechny aliasy, které do ní doručují, její velikost a kdo ji na kterých zařízeních používá. Sdílené schránky a distribuční seznamy potřebují stejné zacházení. Většina poskytovatelů ukazuje velikosti schránek v administrační konzoli; pokud ne, vypíše je imapsync --justfoldersizes proti starému serveru.

Potom zkontroluj tři věci na nové straně:

  • Úložiště. Sečti velikosti schránek a nech rezervu na růst i na vlastní indexy serveru. Doména s 18 GB pošty se nevejde do tarifu s 10 GB a zjistit to v půlce kopírování je nepříjemné.
  • Účty. Vytvoř každou schránku a alias na novém serveru před kopírováním. imapsync kopíruje do účtů, nevytváří je.
  • Přístup k DNS. Potřebuješ upravovat záznamy MX, SPF, DKIM a DMARC domény. Zjisti, kde je DNS domény skutečně hostované - jak to poznat, vysvětluje nameservery versus DNS záznamy - a sniž TTL záznamu MX na 300 sekund alespoň den před přepnutím, aby se změna propagovala v minutách místo hodin.

Kopírování schránek pomocí imapsync#

imapsync je standardní nástroj pro kopírování z IMAP na IMAP. Přihlásí se na oba servery, projde každou složku a zkopíruje zprávy, které na cíli ještě nejsou, i s příznaky a daty. Druhé spuštění zkopíruje jen to, co je nové, a právě to umožňuje dvouprůchodové přepnutí. Je to skript v Perlu, který zveřejňuje jeho autor Gilles Lamiral; nejjednodušší způsob, jak ho spustit bez instalace modulů Perlu, je oficiální obraz Dockeru gilleslamiral/imapsync.

Spouštěj ho z počítače s dobrým spojením na oba servery - z vlastního počítače nebo u velké migrace z malého VDS - ne ze samotného poštovního serveru.

První, neškodné spuštění, které jen hlásí, co by se stalo:

bash
$ imapsync \    --host1 imap.oldprovider.example --user1 anna@example.com \    --passfile1 ./old-anna.txt --ssl1 \    --host2 mail.example.com --user2 anna@example.com \    --passfile2 ./new-anna.txt --ssl2 \    --automap --dry

Pak to skutečné: stejný příkaz bez --dry. Důležité volby:

VolbaCo dělá
--host1, --user1, --passfile1Zdrojový server a přihlášení; heslo se čte ze souboru
--host2, --user2, --passfile2Cílový server a přihlášení
--ssl1, --ssl2Implicitní TLS na každé straně
--port1, --port2Porty, pokud nejsou výchozí 993
--automapMapuje speciální složky (Sent, Drafts, Trash, Junk) podle jejich role, ne názvu
--dryUkáže, co by se udělalo, nic nezmění
--justfoldersVytvoří jen strom složek
--exclude 'regex'Přeskočí složky, jejichž názvy odpovídají
--maxage NJen zprávy mladší než N dnů, pro rychlý první průchod

Použití --passfile1 a --passfile2 místo --password1 a --password2 drží hesla mimo historii shellu a na sdíleném stroji mimo seznam procesů. Soubory potom smaž.

Pro víc než hrstku uživatelů dej přihlašovací údaje do souboru a projeď je smyčkou:

migrate.sh
#!/bin/sh# users.csv: old login;old password file;new login;new password filewhile IFS=';' read -r u1 p1 u2 p2; do  imapsync --host1 imap.oldprovider.example --user1 "$u1" --passfile1 "$p1" --ssl1 \           --host2 mail.example.com --user2 "$u2" --passfile2 "$p2" --ssl2 \           --automapdone < users.csv

Velká schránka trvá hodiny. Úzkým místem jsou téměř vždy limity zdrojového poskytovatele, ne šířka pásma, a imapsync po přerušení čistě naváže - stačí ho spustit znovu.

Gmail, Google Workspace a Microsoft 365#

Každý z velkých poskytovatelů má jednu zvláštnost, na kterou lidé narážejí.

Gmail a Google Workspace nemají složky, mají štítky, které se přes IMAP zobrazují jako složky. Zpráva se třemi štítky se objeví ve třech složkách a každá zpráva je navíc v [Gmail]/All Mail. Při naivním kopírování se 5GB schránka změní na 15 GB duplicit. imapsync má pro to předvolbu --gmail1, která nastaví správný host a vyloučí virtuální složky jako All Mail a Important; přečti si její dokumentaci, co přesně vylučuje, a rozhodni se, jestli chceš zprávy, které existují jen v All Mail (archivované bez štítku), zkopírovat do archivní složky. Google také omezuje stahování přes IMAP na účet a den - jeho zveřejněný limit pro Workspace je kolem 2 500 MB - takže velký účet trvá několik dní a kopírování musí začít dlouho před přepnutím. Přístup přes IMAP musí být povolený a při zapnutém dvoufázovém ověření potřebuje přihlášení heslo aplikace, ne to běžné.

Microsoft 365 / Exchange Online už u většiny tenantů nepřijímá přihlášení obyčejným heslem přes IMAP; základní autentizace byla vyřazena. imapsync pro to podporuje přístupové tokeny OAuth2 (--oauthaccesstoken1) a existuje předvolba --office1, ale získání tokenu vyžaduje registraci aplikace v tenantu. Pokud je to víc, než chceš podstoupit, záložní cesta je exportovat každou schránku z Outlooku do souboru .pst a importovat ho z klienta připojeného k oběma účtům, což je pomalejší a ztrácí méně, než lidé čekají.

Jiné hostingy a poskytovatelé ve stylu cPanelu obvykle přijímají obyčejné přihlášení přes IMAP na 993 a nepotřebují nic zvláštního. Zkontroluj, jestli starý hosting počítá poštu v prostoru jmen INBOX. (složky pojmenované INBOX.Sent, INBOX.Archive); imapsync ve většině případů překládá oddělovače a předpony automaticky a --dry ti ukáže mapování složek dřív, než se cokoli zkopíruje.

Přepnutí DNS#

Když má každá schránka za sebou plný první průchod, přepni doručování pošty. Záleží na pořadí.

  1. Ujisti se, že nový server umí přijímat. Port 25 k němu dosáhne, doména a všechny adresy existují a zkušební zpráva poslaná přímo na nový server dorazí.
  2. Přidej nový server do SPF vedle starého poskytovatele, například v=spf1 include:_spf.oldprovider.example ip4:203.0.113.25 ~all. Chvíli odesílají oba.
  3. Publikuj DKIM klíč nového serveru pod vlastním selektorem. Selektor starého poskytovatele zůstává na místě; nekolidují. Selektory popisuje DKIM klíče a jejich rotace.
  4. Změň záznam `MX` na nový server.
  5. Vyčkej na vypršení starého TTL a přidej rezervu. Někteří odesílatelé cachují déle, než by měli.
cachovaný starý MXnový MXOdesílající serveryZáznam MXTTL 300Starý poskytovatelopozdilciimapsyncdruhý průchodNový serverport 25
Kam pošta dopadne při přepnutí

Tvůj záznam DMARC se nemění, dokud oba odesílatelé, starý i nový, během překryvu projdou SPF nebo DKIM se zarovnáním. Jak zkontrolovat, co vidí svět, pomocí dig MX example.com +short a dotazu na autoritativní server, který obejde cache, popisuje vysvětlení záznamů MX.

Druhý průchod a období překryvu#

Den nebo dva po přepnutí ještě část pošty dorazí ke starému poskytovateli: odesílatelé s cachovaným DNS a opakované pokusy zařazené před změnou. Spusť stejné příkazy imapsync znovu. Zkopírují jen zprávy, které jsou na staré straně nové, a nechají na pokoji, co už na novém serveru je - včetně pošty doručené tam přímo od přepnutí.

Pak to zopakuj ještě jednou za pár dní a staré účty nech otevřené dva až čtyři týdny. Toto okno zachytí poslední opozdilce a dává ti záložní plán, kdyby se na novém serveru ukázalo, že je něco špatně. Když zůstanou schránky starého poskytovatele týden prázdné, odstraň jeho záznam ze SPF, smaž jeho selektor DKIM, jakmile si jsi jistý, že přes něj nic neodesílá, a zavři účty.

Přepnutí poštovních klientů

Klienti jsou poslední krok, až po druhém průchodu, aby lidé otevřeli poštovního klienta ve schránce, která už obsahuje všechno.

  • Desktopoví klienti (Thunderbird, klasický Outlook): přidej nový účet vedle starého, místo abys upravoval nastavení serveru starého účtu. Klient si z nového serveru postaví novou místní cache a starý účet zůstane čitelný, dokud ho neodstraníš. Úprava pole serveru na místě často zmate místní cache tak, že ukazuje duplicity nebo prázdné složky.
  • Telefony: smaž starý účet a přidej nový. Telefony si lokálně drží málo, takže není o co přijít.
  • Kontakty a kalendáře: importuj exporty .vcf a .ics tam, kde teď žijí.
  • Podpisy a pravidla: pravidla na straně klienta se musí vytvořit znovu; pravidla na straně serveru se stanou pravidly Sieve na novém serveru.

Nastavení e-mailového klienta obsahuje přesná nastavení pro každého klienta a vyplatí se poslat ho uživatelům jako návod.

Uchování starého archivu#

Roky pošty bývají důvodem přesunu a zároveň největší schránkou v něm. Možnosti v pořadí podle preference:

  1. Zkopírovat všechno. Pokud to úložiště dovolí, všechno žije na novém serveru a vyhledávání funguje jako dřív.
  2. Archivní účet. Zkopíruj starší roky do samostatné schránky, kterou může otevřít pár lidí, a běžné schránky zůstanou malé a rychle se synchronizují do telefonů.
  3. Offline export. imapsync umí kopírovat na libovolný server IMAP, ale pro studený archiv je jednodušší export mbox nebo Maildir uložený na samostatném úložišti. Ulož ho dvakrát na dvě místa; archiv v jedné kopii není archiv.

Ať už si necháš cokoli, nový server teď drží jedinou živou kopii pošty organizace, takže backupy nastav hned první den. Proč je test obnovy důležitější než rozvrh záloh, vysvětluje zálohy, které opravdu obnovíš.

Řešení potíží při migraci#

`imapsync` se nepřihlásí ke starému poskytovateli. IMAP může být pro účet nebo tenant vypnutý, poskytovatel může kvůli zapnutému dvoufázovému ověření vyžadovat heslo aplikace, nebo mohl přihlášení heslem úplně zrušit. Přihlas se desktopovým klientem se stejnými údaji; pokud selže i to, problém je v účtu, ne v nástroji.

Kopie je mnohem větší než schránka. Duplicity ze štítků, téměř vždy Gmail. Zastav, smaž zkopírované složky na novém serveru a začni znovu s --gmail1 nebo s explicitními pravidly --exclude pro virtuální složky.

Složky dorazí s divnými názvy, třeba `INBOX.INBOX.Sent`. Nesoulad prostoru jmen nebo oddělovače mezi oběma servery. Spusť s --dry --justfolders a přečti si mapování, které vypíše; imapsync má volby pro úpravu předpon a oddělovačů a --automap se postará o speciální složky.

Běh se v půlce zastaví s timeouty nebo „too many connections“. Zdroj tě omezuje. Spouštěj jednu schránku po druhé místo několika paralelně a příkaz prostě spusť znovu; naváže tam, kde skončil.

Zprávy mají v nové schránce dnešní datum. Klient řadí podle data, kdy zprávu přijal ze serveru, a ne podle její hlavičky Date:. imapsync ve výchozím stavu zachovává vnitřní datum serveru; přepni řazení v klientovi na datum odeslání, nebo znovu sestav jeho cache.

Pošta poslaná na alias se po přepnutí vrací. Alias se na novém serveru nikdy nevytvořil. Porovnej seznam z inventury s adresami na novém serveru - a podívej se na vrácenou zprávu, která uvádí přesnou adresu.

Přesun na poštovní server RE:NODE#

Řada Mail Server provozuje Stalwart s SMTP, IMAP a JMAP a s webovou administrací, kde před prvním kopírováním vytvoříš doménu, schránky a klíč DKIM. Tarify začínají na 10 GB úložiště pošty a jdou až do 80 GB, takže součet z inventury porovnej s tarifem dřív, než objednáš. Požádej podporu, ať přesměruje port 25, než změníš MX - jeden poštovní server na adresu - protože server, který nemůže přijímat, není připravený na čtvrtý krok. Jako --host2 a --port2 použij adresu serveru a port IMAP zobrazený v panelu. Sloty pro backupy jsou součástí každého tarifu Mail; jeden vytvoř po prvním plném kopírování a někam ho jednou obnov, abys věděl, že funguje.

FAQ#

Mohu přesunout e-mail úplně bez výpadku?

Ano. Při dvouprůchodové metodě se pošta vždy někam doručí - ke starému poskytovateli před propagací a během ní, na nový server po ní - a druhý průchod imapsync posbírá opozdilce. Uživatelé si všimnou jen okamžiku, kdy přepnou klienty, a ten ovládáš ty.

Jak dlouho migrace přes imapsync trvá?

Většinou tak dlouho, jak dovolí zdrojový poskytovatel. Pár gigabajtů od běžného hostingu trvá hodinu nebo dvě. Kvůli dennímu limitu stahování přes IMAP u Gmailu může velká schránka Googlu trvat několik dní, proto začni první průchod dlouho před plánovaným datem přepnutí.

Rozbije přesun e-mailu můj web?

Ne, pokud měníš jen poštovní záznamy. Záznamy MX, SPF, DKIM a DMARC jsou nezávislé na záznamech A nebo CNAME, které obsluhují web. Poštovní záznamy uprav na místě a ostatní nech být.

Co se stane s poštou odeslanou během přepnutí DNS?

Doručí se na ten server, na který ukazuje cachované DNS odesílatele. Pošta, která dopadne ke starému poskytovateli, se neztratí; sebere ji druhý průchod imapsync. Proto musí staré účty po přepnutí chvíli zůstat otevřené.

Mohu spustit imapsync přímo na novém poštovním serveru?

Můžeš, ale je lepší to nedělat. Migrace je těžká, dlouho běžící úloha a poštovní server má v prvním týdnu s pamětí lepší věci na práci. Spusť ji z vlastního počítače nebo z oddělené mašiny se stabilním spojením na oba servery.


Komentáře

Zcela anonymně: žádný účet, žádný e-mail, žádné cookie. Ukládáme jen jméno, které napíšeš, text a čas - nic dalšího. Počet odkazů je omezený a značkování se nevykresluje.

0/2000