Přejít na obsah
Dokumentace

Návod

Odesílání e-mailů přes POST /emails – pravidla pro odesílatele, příjemci, obsah, šablony, měření, odpověď, události webhooků a všechny chybové kódy.

Aktualizováno 1. 10. 2026

Tento návod vysvětluje jednotlivé části požadavku POST /emails a co s nimi Emailit udělá, od adresy odesílatele až po chyby, které můžete dostat zpět. Úplný přehled parametrů najdete v referenci API na stránce Odeslání e-mailu.

Než začnete

  • Ověřená odesílací doména ve vašem workspace. Viz Přidání odesílací domény.
  • API klíč s oprávněním Full Access, nebo Sending Only. Viz API klíče.
  • Produkční přístup, pokud odesíláte komukoli jinému než členům workspace. Viz Produkční přístup.
  • Dost kreditů pro všechny příjemce (1 kredit za každého).

Odešlete základní e-mail

Terminal
curl https://api.emailit.com/v2/emails \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Acme Billing <billing@acme.com>",
    "to": ["ada@example.com", "Grace Hopper <grace@example.com>"],
    "cc": "accounts@example.com",
    "reply_to": "support@acme.com",
    "subject": "Your invoice for October",
    "html": "<p>Your invoice is ready.</p>",
    "text": "Your invoice is ready."
  }'

Nastavte adresu odesílatele

Pole from je povinné a přijímá jednu adresu v jednom z těchto tvarů:

  • billing@acme.com
  • Acme Billing <billing@acme.com>, nebo s uvozovkami "Acme, Inc." <billing@acme.com>

Doména za @ musí být ověřená odesílací doména ve stejném workspace:

  • Shoda musí být přesná. Na velikosti písmen v doméně nezáleží, ale mail.acme.com a acme.com jsou různé domény. Přidejte a ověřte každou subdoménu, ze které odesíláte.
  • Část adresy před zavináčem může být libovolná. Pro billing@ nebo no-reply@ nepotřebujete schránku.
  • Domény čekající na kontrolu nemohou odesílat. Doména, která ještě čeká na ruční kontrolu (Pending verification), se považuje za neověřenou.
  • Omezené klíče zůstávají u své domény. Klíč s oprávněním Sending Only omezený na jednu doménu může odesílat jen z této domény.
  • Pozastavené domény jsou blokované. Pokud doménu pozastavila kondice odesílání, odeslání z ní se odmítají, dokud se pozastavení nezruší.

Přidejte příjemce

Pole to je povinné, cc a bcc jsou volitelná. Každé z nich přijímá řetězec nebo pole řetězců, se zobrazovanými jmény i bez nich, a pojme až 50 adres. Řetězec může obsahovat několik adres oddělených čárkou; pokud zobrazované jméno samo obsahuje čárku, použijte pole.

Emailit odstraní duplicity napříč to, cc a bcc (bez ohledu na velikost písmen) a pak vytvoří jeden e-mail pro každého jedinečného příjemce, každý s vlastním ID em_. Každá kopie nese stejné hlavičky To a Cc, takže příjemci vidí konverzaci jako obvykle, a příjemci ve skryté kopii (Bcc) se v hlavičkách žádné kopie nikdy neobjeví.

Pokud má požadavek víc než jednoho příjemce, odpověď obsahuje mapu ids z adresy příjemce na ID e-mailu. id je e-mail prvního příjemce.

JSON
{
  "object": "email",
  "id": "em_33VtK8mRq1xZp7LwN4cY2bHsDfa",
  "ids": {
    "ada@example.com": "em_33VtK8mRq1xZp7LwN4cY2bHsDfa",
    "grace@example.com": "em_33VtK8nB5rTq0YxW3mJk9PdLsUe",
    "accounts@example.com": "em_33VtK8nQ2wErT6yU8iOp4AsDf7g"
  }
}

Každý příjemce stojí 1 kredit a započítává se do vašich limitů rychlosti. Příjemce s blokací typu recipient se přijme, ale místo doručení dostane stav suppressed.

Napište obsah

Pole Pravidla
subject Povinné, pokud ho neposkytne šablona. Znaky mimo ASCII se zakódují automaticky.
html Tělo v HTML. Potřebujete html, text, nebo obojí, pokud je neposkytne šablona.
text Tělo v prostém textu. Posílejte ho spolu s html: některé e-mailové klienty a spamové filtry dávají přednost zprávám s oběma verzemi.
reply_to Řetězec nebo pole adres, na které mají chodit odpovědi.

Pokud reply_to obsahuje stejnou adresu jako from, Emailit hlavičku Reply-To vynechá, protože nic nepřidává a některé spamové filtry ji penalizují.

Odešlete e-mail se šablonou

Do pole template zadejte alias šablony nebo ID tem_ a v variables předejte hodnoty pro proměnné Temple, které šablona obsahuje.

  • Alias odešle verzi, která je pro daný alias aktuálně publikovaná. Pokud žádná verze publikovaná není, požadavek selže s 404.
  • ID tem_ odešle přesně tuto verzi, ať je publikovaná, nebo ne. Použijte ho k otestování konceptu před publikováním.

Pole v požadavku mají přednost před šablonou: subject, html nebo text, které odešlete, nahradí hodnotu ze šablony. Pokud neodešlete reply_to, použije se adresa pro odpověď ze šablony. Pole from musí být v požadavku vždy. Jak funguje publikování, najdete na stránce Verze šablon.

Terminal
curl https://api.emailit.com/v2/emails \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Acme <hello@acme.com>",
    "to": "ada@example.com",
    "template": "welcome-email",
    "variables": {
      "first_name": "Ada",
      "plan": "Pro",
      "activation_url": "https://acme.com/activate?token=8f3k2"
    }
  }'

variables funguje i bez šablony: Emailit vykreslí proměnné Temple v polích subject, html a text, která odešlete přímo v požadavku.

Nastavte měření

Ve výchozím stavu se každý e-mail řídí nastavením Track loads a Track clicks své odesílací domény. U jednotlivých e-mailů ho přepíšete polem tracking:

  • "tracking": true nebo false zapne, nebo vypne měření načtení (otevření) i prokliků zároveň.
  • "tracking": { "loads": true, "clicks": false } nastaví každé zvlášť.

Měření funguje, jen když je CNAME záznam pro měření dané domény ověřený. Bez něj se e-mail odešle bez měření a požadavek přesto uspěje. Objekt tracking v odpovědi ukazuje nastavení, která se skutečně použila. Viz Měření otevření a prokliků.

Přidejte hlavičky a metadata

Pole headers slouží pro vlastní hlavičky e-mailu, například List-Unsubscribe, a meta pro vaše vlastní řetězcové dvojice klíč–hodnota. Emailit uloží meta spolu s e-mailem a přikládá je k událostem webhooků. Viz Hlavičky a metadata.

Jak přiložit soubory, naplánovat odeslání nebo zajistit bezpečné opakování požadavků, najdete na stránkách Přílohy, Plánování a Idempotence.

Přečtěte si odpověď

Úspěšný požadavek vrací 200:

Pole Popis
object Vždy email.
id ID em_ e-mailu prvního příjemce.
ids Mapa z adresy příjemce na ID e-mailu. Uvádí se, jen pokud je příjemců víc.
token Interní token prvního e-mailu, používá se také v jeho Message-ID.
message_id Hlavička Message-ID prvního e-mailu ve tvaru <token@your-domain>.
from Adresa odesílatele tak, jak jste ji odeslali.
to Adresy z to bez zobrazovaných jmen.
cc, bcc Adresy z cc a bcc. Uvádějí se, jen pokud jste je odeslali.
subject Výsledný předmět po vykreslení šablony.
status accepted, nebo scheduled, pokud má e-mail čas odeslání v budoucnosti.
scheduled_at Čas odeslání ve formátu ISO 8601, nebo null.
created_at Kdy byl e-mail vytvořen.
tracking Použité nastavení loads a clicks.

Uložte si id (nebo mapu ids), abyste k e-mailu mohli přiřadit pozdější události webhooků a dohledat ho přes Načtení e-mailu.

Události

E-mail každého příjemce vyvolává vlastní události:

  1. email.accepted hned po požadavku, nebo email.scheduled, pokud má čas odeslání v budoucnosti.
  2. Události doručení, jak e-mail prochází zpracováním: email.delivered, email.attempted (dočasná chyba, Emailit to zkusí znovu), email.bounced, email.failed, email.rejected nebo email.suppressed. E-mail zadržený ke kontrole vyvolá email.held.
  3. Události zapojení, pokud je zapnuté měření: email.loaded a email.clicked. Nahlášení spamu vyvolá email.complained.

Význam jednotlivých stavů najdete na stránce Stavy e-mailů.

Chyby

Chyby validace vracejí seznam všech nalezených problémů:

JSON
{
  "error": "Validation failed",
  "validation_errors": [
    "Missing required field: subject",
    "Invalid to email address at index 1: grace@"
  ]
}
Stav error Příčina Řešení
400 Validation failed Chybí povinné pole, adresa má chybný formát, pole obsahuje víc než 50 příjemců nebo je neplatná příloha. Opravte každou položku v validation_errors.
400 Invalid Idempotency-Key Hlavička Idempotency-Key má chybný formát. Použijte 1–256 písmen, číslic, - nebo _. Viz Idempotence.
401 Unauthorized API klíč chybí, nebo je neplatný. Odešlete Authorization: Bearer s platným klíčem.
402 Insufficient credits Workspace nemá na zaplacení všech příjemců. Kupte kredity, nebo zapněte automatické dobíjení.
403 Workspace not verified Workspace je v režimu sandbox a některý příjemce není členem workspace. code je unverified_workspace_recipient a blocked_recipients obsahuje seznam adres. Požádejte o produkční přístup, nebo testujte s adresami členů.
403 Domain not authorized API klíč je omezený na jinou odesílací doménu. Odesílejte z domény klíče, nebo použijte klíč bez omezení na doménu.
403 Domain paused Kondice odesílání pozastavila doménu odesílatele. Viz Kondice odesílání.
404 Template not found Alias nemá žádnou publikovanou verzi, nebo ID tem_ v tomto workspace neexistuje. Publikujte verzi, nebo zkontrolujte ID.
409 Idempotency key in progress Jiný požadavek se stejným klíčem ještě probíhá. Počkejte a pak požadavek zopakujte se stejným klíčem.
413 Message too large Zakódovaná zpráva je větší než 40 MB. Pošlete méně nebo menší přílohy, nebo na velké soubory odkažte.
422 Domain not verified Doména odesílatele není v tomto workspace ověřenou odesílací doménou. Ověřte doménu, nebo zkontrolujte, jestli nejde o subdoménu nebo překlep.
422 Attachment error Přílohu z URL se nepodařilo stáhnout, nebo je větší než 25 MB. Viz Přílohy.
429 Rate limit exceeded nebo Daily limit exceeded Překročili jste limit odesílání za sekundu nebo denní limit. Počkejte počet sekund z retry-after, nebo požádejte o vyšší limit.
503 Idempotency unavailable Úložiště idempotenčních klíčů není dostupné. Zopakujte požadavek se stejným klíčem.

Zablokovaný workspace dostane při každém odeslání 403 s Workspace is suspended. Obecný formát chyb najdete na stránce Chyby.

Byla tato stránka užitečná?

Děkujeme za zpětnou vazbu.

Děkujeme, čteme každou zprávu.