Průvodce
Přechod z Mailgunu
Přejděte z Mailgunu na Emailit. Namapujte domény, klíče a routes, převeďte volání API s daty formuláře na JSON a přesuňte SMTP, webhooky, blokované adresy a šablony.
Tento průvodce mapuje pojmy, volání API, webhooky, blokované adresy a šablony z Mailgunu na jejich ekvivalenty v Emailitu. Celkové pořadí a souběžný provoz obou poskytovatelů popisuje stránka Přechod na Emailit, přečtěte si ji jako první.
Principy
| Mailgun | Emailit |
|---|---|
| Účet a subaccounts | Účet a workspace. Každý workspace má vlastní domény, klíče, členy a kredity. |
Doména s vlastní cestou API /v3/<domain>/… |
Odesílací doména. Existuje jeden endpoint pro odesílání a Emailit doménu určí z adresy from. |
| Private API key | API klíč s oprávněním Full Access |
| Domain sending key | API klíč s oprávněním Sending Only omezený na jednu doménu |
| Přístupové údaje k SMTP pro každou doménu | Váš API klíč použitý jako heslo k SMTP |
| Šablony pro každou doménu, s verzemi | Šablony pro celý workspace, s aliasem a verzemi |
| Webhooky pro každou doménu | Webhooky pro celý workspace |
| Routes | Příchozí e-maily s webhookem email.received, nebo automatizace Forward received email |
| Suppressions pro každou doménu: Bounces, Unsubscribes, Complaints | Jeden seznam blokovaných adres pro každý workspace |
| Mailing lists | Seznamy kontaktů |
| Tags a custom variables | meta |
| Logy a události | Email APIEmails, Email APIEvents a Email APILogs |
| Email validation | Ověřování e-mailů |
Upravte volání API
POST /v3/<domain>/messages v Mailgunu přijímá pole formuláře se základní autentizací. POST /v2/emails v Emailitu přijímá JSON s bearer tokenem:
curl -s --user "api:$MAILGUN_API_KEY" \
https://api.mailgun.net/v3/mg.acme.com/messages \
-F from='Acme <hello@mg.acme.com>' \
-F to='ada@example.com' \
-F subject='Your receipt' \
-F text='Thanks for your order.' \
--form-string html='<p>Thanks for your order.</p>'curl https://api.emailit.com/v2/emails \
-H "Authorization: Bearer $EMAILIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "Acme <hello@mg.acme.com>",
"to": "ada@example.com",
"subject": "Your receipt",
"text": "Thanks for your order.",
"html": "<p>Thanks for your order.</p>"
}'| Mailgun | Emailit |
|---|---|
Základní autentizace api:<key> |
Authorization: Bearer secret_… |
Pole multipart/form-data |
Tělo JSON |
from, subject, text, html |
Stejné názvy |
to, cc, bcc (opakované nebo oddělené čárkou) |
to, cc, bcc jako řetězec nebo pole, každé až 50 adres |
h:Reply-To |
reply_to |
h:X-My-Header |
headers: { "X-My-Header": "…" } |
v:order-id, h:X-Mailgun-Variables |
meta: { "order-id": "…" }, vrací se v událostech webhooků |
template a t:variables |
template (ID nebo alias) a variables |
attachment, inline (nahrávání souborů) |
attachments[] s content v base64 nebo s url a k tomu content_type. U vložených obrázků přidejte content_id. |
o:deliverytime (datum podle RFC 2822) |
scheduled_at (ISO 8601, unixový čas nebo běžná angličtina) |
o:tracking, o:tracking-opens, o:tracking-clicks |
tracking: { "loads": true, "clicks": true } |
o:tag |
meta |
o:testmode |
Není dostupné |
recipient-variables (dávkové odesílání) |
Není dostupné. Pro každého příjemce odešlete samostatný požadavek s vlastními variables. |
Odpověď { "id": "<…>", "message": "Queued. Thank you." } |
200 s id (em_…), message_id, status: "accepted" a ids pro jednotlivé příjemce |
Pokud jste odesílali ze subdomény, například mg.acme.com, přidejte do Emailitu přesně tuto subdoménu. Subdomény se ověřují odděleně od nadřazené domény. Hostitelé API Mailgunu pro EU i USA odpovídají jedinému endpointu Emailitu. Viz Odeslání e-mailu.
Změňte nastavení SMTP
| Nastavení | Mailgun | Emailit |
|---|---|---|
| Server | smtp.mailgun.org nebo server pro EU |
smtp.emailit.com |
| Port | 587, 465, 2525 nebo 25 |
587 (STARTTLS), 465 (TLS), 2525, 2587 nebo 25 |
| Uživatelské jméno | Vaše přihlašovací jméno SMTP, například postmaster@mg.acme.com |
emailit |
| Heslo | Vaše heslo SMTP | Váš API klíč Emailitu |
Emailit nečte hlavičky X-Mailgun-*. Odstraňte je a měření místo toho nastavte na doméně. Viz Nastavení SMTP.
Namapujte události webhooků
| Událost Mailgunu | Událost Emailitu |
|---|---|
accepted |
email.accepted (jen API) |
delivered |
email.delivered |
failed se závažností temporary |
email.attempted |
failed se závažností permanent |
email.bounced |
opened |
email.loaded |
clicked |
email.clicked |
complained |
email.complained |
unsubscribed |
email.unsubscribed, jen u e-mailů z kampaní |
| Route, která přeposílá na URL | email.received, pak načtěte obsah přes GET /emails/{id} |
Mění se formát požadavku:
- Mailgun posílá jednu událost na požadavek s podrobnostmi v
event-data. Emailit posílá pole JSON s až 100 událostmi. Procházejte pole ve smyčce. - Název události je v
typea e-mail vdata.object. K přiřazení událostí ke zprávám používejtedata.object.id, IDem_z odpovědi na odeslání. Vaše hodnotymetajsou vdata.object.meta. - Mailgun podepisuje časové razítko a token uvnitř těla. Emailit podepisuje celé surové tělo: ověřujte
X-Emailit-SignaturevůčiX-Emailit-Timestampa vašemu tajnému klíčiwhsec_. Viz Podpis požadavku.
for (const event of req.body) {
const email = event.data.object;
if (event.type === 'email.bounced') markBounced(email.to, email.id);
if (event.type === 'email.complained') unsubscribe(email.to);
}Přesuňte blokované adresy
-
Vyexportujte seznamy Bounces, Complaints a Unsubscribes každé domény v Mailgunu, ze které odesíláte, v ovládacím panelu nebo přes API pro suppressions (
/v3/<domain>/bounces,/complaintsa/unsubscribes). -
Sestavte jedno CSV se sloupci
email,type,reason:email,type,reason old-address@example.com,recipient,mailgun bounce angry@example.com,recipient,mailgun complaintPro adresy, které nikdy nesmí dostat e-mail, použijte typ
recipient. Blokuje odeslání přes API, SMTP i kampaně. Typybounce,complaintaunsubscribezastavují jen kampaně. -
V Email APISuppressions vyberte Import a nahrajte soubor. Každý soubor může mít až 10 000 řádků a nejvýše 8 MB. Duplicity se přeskočí.
Emailit má jeden seznam blokovaných adres pro každý workspace, takže adresy ze všech vašich domén v Mailgunu půjdou do stejného seznamu. Seznam povolených adres (allowlist) neexistuje. Viz Správa blokovaných adres.
Přesuňte šablony
Zkopírujte HTML každé šablony z Mailgunu a pak ho naimportujte v Email MarketingTemplates, nebo šablonu vytvořte přes API pro šablony. Dejte jí alias a odesílejte ji s "template": "<alias>" a variables.
Šablony Mailgunu používají Handlebars. Temple pokrývá běžné části:
| Mailgun (Handlebars) | Emailit (Temple) |
|---|---|
{{first_name}} |
{{first_name}} |
{{{html_block}}} |
{{html_block}}. Temple nikdy neescapuje HTML, proto vstupy od uživatelů escapujte sami. |
{{#if plan}}…{{else}}…{{/if}} |
Stejně |
{{#unless plan}}…{{/unless}} |
{{#if plan}}{{else}}…{{/if}} |
{{#each items}}…{{/each}} |
Nepodporuje se. Vykreslete seznam ve svém kódu a předejte ho jako jednu proměnnou. |
{{#equal plan "pro"}}…{{/equal}} |
Nepodporuje se. Předejte logickou hodnotu, například is_pro, a použijte {{#if is_pro}}. |
| Bez vestavěné výchozí hodnoty | {{first_name|"there"}} přidá náhradní hodnotu |
Viz Temple a Import a export šablon.
Změňte DNS
Přidejte každou doménu v Email APIDomains a publikujte záznamy Emailitu. Používají vlastní názvy (emailit._domainkey, emailit.<domain> a volitelně go a inbound), takže nejsou v konfliktu se záznamem DKIM Mailgunu ani s jeho CNAME záznamem pro měření email.<domain>. Kvůli Emailitu nemusíte měnit záznam SPF hlavní domény. Záznam DMARC ponechte. Viz DNS záznamy odesílacích domén.
Po přepnutí provozu odstraňte záznamy DKIM a měření Mailgunu a ze záznamu SPF odeberte include:mailgun.org. Pokud přijímáte poštu přes routes v Mailgunu, ponechte jeho MX záznamy, dokud tento provoz nepřesunete na příchozí poštu Emailitu, která přijímá na subdoméně, například inbound.acme.com.
Další kroky
- Kontrolní seznam před ostrým provozem
- Nastavení webhooku
- Prioritní migrace: nechte inženýry Emailitu provést přechod s vámi