Migrace z Mailgunu, SendGridu nebo Amazon SES na jinou službu: checklist
Co si vyexportovat, co nastavit v DNS, jak přenést blokovaný seznam a webhooky, jak přepínat provoz postupně a kdy starou službu vypnout. Postup, který nerozbije potvrzení objednávek.
Důvody k přechodu na jinou e-mailovou službu bývají tři: cena za objem, který reálně posíláte, požadavek na data v EU, nebo podpora, která odpovídá v jazyce a čase, kdy ji potřebujete. Důvod k odkládání bývá jeden: strach, že se při přepnutí ztratí potvrzení objednávek. Tenhle checklist je postup, kterým migrace proběhne bez výpadku. Platí pro přechod odkudkoli kamkoli; tam, kde se služby liší, to zmiňujeme.
Před začátkem: inventura
Sepište si všechno, co z vaší domény posílá e-maily. Nejen e-shop, ale i fakturační program, helpdesk, CRM, newsletterový nástroj, interní skripty, cron s reporty. Při migraci se nejčastěji zapomene na systém, o kterém nikdo neví, a který po změně DNS přestane fungovat. DMARC reporty (rua=) jsou nejspolehlivější způsob, jak takový systém najít; pokud je ještě nesbíráte, zapněte je teď, i kdyby migrace měla počkat dva týdny.
Pak si u stávající služby zjistěte:
- jaký objem denně a měsíčně posíláte (špička, ne průměr),
- z jakých domén a subdomén,
- jaké máte šablony uložené na straně služby (SendGrid Dynamic Templates, Mailgun Templates, SES Templates),
- kam chodí webhooky a jaké události zpracováváte,
- jak velký máte blokovaný seznam (bounces, complaints, unsubscribes).
Krok 1: nová služba, nová doména nebo subdoména
Založte účet a ověřte doménu dřív, než cokoli přepnete. Nová služba potřebuje vlastní DKIM selektor a include: v SPF; obojí může existovat vedle záznamů staré služby, takže ověření nic nerozbije. Postup je v článku SPF, DKIM a DMARC pro e-shop.
Dvě upozornění:
- Limit 10 DNS dotazů v SPF. Pokud už máte
include:pro Google Workspace, starou službu a helpdesk, novýinclude:vás může dostat přes limit. Spočítejte to; přes limit SPF přestane platit úplně. - Nové účty mají limity. Každá seriózní služba nový účet prověřuje a objem navyšuje postupně. Nahlaste dopředu, kolik budete posílat; u nás je to ruční ověření do jednoho pracovního dne. Nezačínejte migraci v týdnu před Black Friday.
Zvažte oddělení provozu: transakční e-maily z vas-eshop.cz nebo mail.vas-eshop.cz, marketing z news.vas-eshop.cz. Migrace je nejlepší příležitost to udělat.
Krok 2: blokovaný seznam
Tohle je krok, který se nejčastěji přeskočí, a nejvíc bolí. Stará služba za roky provozu nasbírala tisíce adres, na které se neposílá: neexistující schránky, stěžovatelé, odhlášení. Nová služba o nich neví. První týden po migraci tak pošlete na všechny mrtvé adresy znovu, bounce rate vyskočí a reputace nové domény začne na špatné noze.
- SendGrid: Suppressions → Bounces, Spam Reports, Global Unsubscribes, Group Unsubscribes; export přes UI nebo API.
- Mailgun: Sending → Suppressions, tři seznamy (Bounces, Complaints, Unsubscribes), export CSV nebo API.
- Amazon SES: account-level suppression list přes API (
ListSuppressedDestinations), navíc případný vlastní seznam v aplikaci.
Vyexportujte všechny tři typy a importujte je do nové služby, nebo nám je pošlete před spuštěním. Proč je to důležité, popisuje článek o bounce a suppression listu.
Krok 3: šablony
Pokud máte šablony uložené u služby (a aplikace jim posílá jen data), musíte je přenést. Doporučujeme využít migraci k tomu, aby šablony žily ve vaší aplikaci a služba dostávala hotové HTML a text. Jste pak nezávislí na čemkoli dalším, verzujete šablony v gitu a příští migrace je o krok kratší. Zkontrolujte u každé šablony textovou verzi a odkazy, které vedou na doménu staré služby (sledování kliků, hostované obrázky).
Krok 4: webhooky
Nová služba má jiný formát událostí, jiný podpis a jiné názvy stavů. Připravte nový endpoint (ne přepisujte starý; oba musí nějakou dobu běžet) a namapujte stavy:
| Stará služba | TopEmail |
|---|---|
SendGrid delivered / Mailgun delivered / SES Delivery | delivered |
SendGrid deferred / Mailgun temporary fail / SES (opakování interně) | deferred |
SendGrid bounce / Mailgun permanent fail / SES Bounce (Permanent) | bounced |
SendGrid spamreport / Mailgun complained / SES Complaint | complained |
SendGrid dropped / Mailgun (suppressed) / SES (suppressed) | suppressed |
Ověření podpisu je u každé služby jiné (SendGrid podepisuje ECDSA, Mailgun HMAC z timestamp a tokenu, SES chodí přes SNS, TopEmail HMAC-SHA256 z těla v hlavičce X-TopEmail-Signature). Napište ho znovu, netestujte jen „přijde JSON". Postup včetně idempotence máme v článku o webhookách.
Krok 5: abstrakce v kódu a postupné přepnutí
V aplikaci si udělejte jedno místo, kudy odcházejí všechny e-maily (rozhraní send(message) se dvěma implementacemi). Pak přepínejte podle podílu nebo podle typu zprávy:
- 1 % provozu na novou službu, den sledování doručenek a bounce.
- Nekritické typy (notifikace o změně stavu, informační e-maily) na 100 %.
- Kritické typy (potvrzení objednávek, OTP, faktury), až když předchozí týden nevykázal nic divného.
- 100 %, stará služba zůstává nakonfigurovaná jako záloha.
U SMTP bez vlastního kódu (WooCommerce, PrestaShop) je přepnutí jednorázové: změníte server a přihlašovací údaje v pluginu. Udělejte to v klidné hodině, pošlete testovací objednávku a zkontrolujte originál e-mailu na Gmailu (SPF, DKIM, DMARC PASS).
Postupné navyšování má ještě jeden důvod: reputace nové cesty se buduje objemem a časem. Seznam i Gmail jsou podezřívaví k doméně, která z nuly skočí na desítky tisíc e-mailů denně.
Krok 6: úklid
Po dvou až čtyřech týdnech bez problémů:
- odstraňte
include:staré služby z SPF (uvolní DNS dotazy) a její DKIM záznam, - zrušte staré webhooky,
- zrušte nebo snižte tarif staré služby; u paušálů hlídejte výpovědní lhůtu,
- zkontrolujte DMARC reporty, že z domény neposílá nic, co jste nepřenesli,
- aktualizujte dokumentaci a proměnné prostředí; starý klíč zneplatněte.
Co se při migraci nemění
Reputace domény zůstává vaše, pokud jste posílali z vlastní ověřené domény. Mění se IP adresy, ze kterých zprávy odcházejí, a ty mají u nové služby vlastní historii. Proto postupné navyšování. Pokud jste u staré služby posílali z její sdílené domény („via"), reputaci domény teprve budujete, a o důvod víc začít pomalu.
Shrnutí
Inventura všech odesílajících systémů, ověření domény u nové služby vedle staré, export a import blokovaného seznamu, šablony do aplikace, nový webhook s novým ověřením, přepínání po procentech od nekritických typů, úklid DNS po měsíci. Celé to zabere pár hodin práce rozložených do dvou až tří týdnů, a potvrzení objednávek během toho nevynechají jediný den.
Pokud migrujete k nám, napište nám objem a datum; nový účet připravíme dopředu a blokovaný seznam naimportujeme před prvním e-mailem.
Transakční e-maily z vaší domény přes API nebo SMTP, od 0,025 do 0,06 Kč za e-mail podle objemu, prvních 1 000 e-mailů měsíčně zdarma. Registrace zdarma, bez platební karty.
Registrovat zdarma →