# Opakované odeslání a přeposlání e-mailů

> Odešlete nedoručený, neúspěšný, zablokovaný nebo zadržený e-mail znovu jako nový e-mail, nebo odeslaný e-mail přepošlete jinému příjemci, ve webovém rozhraní nebo přes API.

Opakované odeslání pošle e-mail se stejným obsahem znovu poté, co se nedoručil, selhal, byl zablokován nebo zadržen. Přeposlání pošle kopii už odeslaného e-mailu někomu jinému, například kolegovi z podpory nebo zákazníkovi, který originál ztratil. Obojí vytvoří nový e-mail s vlastním ID a původní e-mail nechá beze změny.

## Než začnete

- V API fungují oba endpointy s klíči s oprávněním **Full Access** i **Sending Only**.
- Obojí se účtuje jako nové odeslání, takže potřebujete dost [kreditů](/cs/docs/billing/credits/).
- Obojí potřebuje původní obsah zprávy. Emailit ho smaže, když skončí doba [uchovávání dat](/cs/docs/data-retention/) pro obsah zpráv:

| | Pay as you go | Pro | Business | Custom |
| --- | --- | --- | --- | --- |
| Uchovávání obsahu zpráv | 7 dní | 30 dní | 30 dní | Flexibilní |

## Odešlete e-mail znovu

E-mail lze odeslat znovu, pokud platí všechny tyto podmínky:

| Podmínka | Podrobnosti |
| --- | --- |
| Stav | `bounced`, `failed`, `suppressed` nebo `held` |
| Stáří | Vytvořený před méně než 30 dny |
| Obsah | Obsah zprávy ještě nebyl smazán po uplynutí doby uchovávání |
| Odesílací doména | Původní odesílací doména ve workspace stále existuje |

Opakované odeslání vytvoří **nový e-mail** s novým ID `em_` a novým Message-ID. Použije surovou zprávu, příjemce, metadata a nastavení měření z originálu a projde běžným procesem doručení. Stojí 1 kredit, nebo 2 kredity, pokud byl originál e-mailem z kampaně. Workspace v režimu sandbox může znovu odesílat jen e-maily adresované členům workspace.

Před opakovaným odesláním odstraňte příčinu, jinak nový e-mail skončí ve stejném stavu:

- **Zablokovaný:** nejdřív odeberte adresu z [blokovaných adres](/cs/docs/suppressions/manage/).
- **Zadržený kvůli kreditům:** dokupte [kredity](/cs/docs/billing/credits/).
- **Zadržený kvůli pozastavené doméně:** vyřešte problém s [kondicí odesílání](/cs/docs/deliverability/sending-health/).
- **Zadržený kvůli skóre spamu:** opakované odeslání pošle stejný obsah a pravděpodobně bude znovu zadrženo. Upravte obsah a místo toho odešlete nový e-mail. Viz [Kontroly spamu](/cs/docs/deliverability/spam-checks/).
- **Nedoručený:** zkontrolujte důvod nedoručení na stránce detailu e-mailu. Na schránku, která neexistuje, se e-mail znovu nedoručí. Pokud Emailit po nedoručení přidal adresu mezi vaše blokované adresy, nejdřív ji odeberte.

**Webové rozhraní**

  1. Otevřete **Email API → Emails** a v něm daný e-mail.
  2. Nahoře na stránce vyberte **Retry**. Webové rozhraní toto tlačítko zobrazuje u zadržených a zablokovaných e-mailů; nedoručené a neúspěšné e-maily odešlete znovu přes API.
  3. Pro potvrzení vyberte v dialogovém okně **Retry Email** znovu **Retry**. Nový e-mail se objeví v seznamu s vlastním ID.

**API**

  Zavolejte [Opakované odeslání e-mailu](/cs/docs/api-reference/emails/retry/) (`POST /emails/{id}/retry`) s ID původního e-mailu. Požadavek nemá tělo.

**cURL**

```bash
curl -X POST https://api.emailit.com/v2/emails/em_33VtK8mRq1xZp7LwN4cY2bHsDfa/retry \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
```

**Node.js**

```javascript
const retried = await emailit.emails.retry('em_33VtK8mRq1xZp7LwN4cY2bHsDfa');
```

**Python**

```python
retried = client.emails.retry("em_33VtK8mRq1xZp7LwN4cY2bHsDfa")
```

**PHP**

```php
$retried = $emailit->emails()->retry('em_33VtK8mRq1xZp7LwN4cY2bHsDfa');
```

```json
{
  "object": "email",
  "id": "em_33Vu2LqPz8aKd4WnX6cR1tYbHgs",
  "original_id": "em_33VtK8mRq1xZp7LwN4cY2bHsDfa",
  "token": "33Vu2LqQ7mFt3XcV9bNp5KsRwEz",
  "message_id": "<33Vu2LqQ7mFt3XcV9bNp5KsRwEz@acme.com>",
  "from": "Acme <orders@acme.com>",
  "to": "ada@example.com",
  "subject": "Receipt for order 1042",
  "status": "accepted",
  "created_at": "2026-10-01T11:15:03.552918Z",
  "message": "Email has been queued for retry"
}
```

| Chyba | Příčina |
| --- | --- |
| `404 Email not found` | ID v tomto workspace neexistuje. |
| `422 Cannot retry email` | E-mail je ve stavu, který nelze odeslat znovu, je starší než 30 dní, jeho obsah byl smazán, nebo byla smazána jeho odesílací doména. Která z možností to je, uvádí `message`. |
| `402 Insufficient credits` | Workspace nemá na opakované odeslání. |
| `403 Workspace not verified` | Workspace je v režimu sandbox a příjemce není členem workspace. |

## Přepošlete e-mail

Přeposlání odešle odchozí e-mail, který jste už odeslali, novému příjemci. Příchozí e-maily přeposílat nelze.

Ve výchozím stavu je přeposlání prostým opětovným odesláním: příjemce dostane původní předmět, tělo a přílohy, jako by byl e-mail odeslán jemu. Nastavením `include_headers` místo toho odešlete klasické přeposlání s blokem „Forwarded message“ (původní From, Date, Subject a To) a volitelným komentářem nad ním. Předmět pak začíná na `Fwd:`.

- `to` (string | string[], povinné): Noví příjemci ve stejných formátech jako `to` při odeslání.
- `include_headers` (boolean): Přidá blok s přeposlanou zprávou, volitelný komentář a předponu předmětu `Fwd:`.
- `comment` (string): Poznámka v prostém textu zobrazená nad přeposlanou zprávou, když je `include_headers` `true`. Jako alias se přijímá i `body`.
- `html` (string): Poznámka v HTML, která se v části HTML použije místo escapovaného `comment`, když je `include_headers` `true`.
- `text` (string): Poznámka v prostém textu, která v textové části nahradí `comment`, když je `include_headers` `true`.
- `from` (string): Odeslání z jiné adresy. Výchozí hodnota je původní adresa odesílatele. Musí být na ověřené odesílací doméně.
- `subject` (string): Nahradí předmět. Výchozí hodnota je původní předmět, s `include_headers` je to `Fwd:` a původní předmět.

Přeposlání je nové odeslání, takže se řídí stejnými pravidly jako `POST /emails`: platí kredity za příjemce, limity rychlosti odesílání, kontroly domény odesílatele i hlavička [`Idempotency-Key`](/cs/docs/email-api/idempotency/). Měření se řídí nastavením odesílací domény. Vlastní hlavičky a metadata originálu se nekopírují a přílohy se přenesou, jen pokud je jejich typ souboru [povolený](/cs/docs/email-api/attachments/#allowed-file-types).

Každý workspace může odeslat **3 požadavky na přeposlání za hodinu**, přičemž se přeposlání z webového rozhraní a z API sčítají. Při překročení limitu vrátí API `429` s `too_many_requests`.

**Webové rozhraní**

  1. Otevřete **Email API → Emails** a v něm daný e-mail.
  2. Vyberte **Forward**.
  3. Do pole **To** zadejte příjemce.
  4. Volitelně zaškrtněte **Add forwarded headers and a comment** a napište komentář do pole **Comment**.
  5. Vyberte **Forward**. Nový e-mail se objeví v seznamu s vlastním ID.

**API**

  Zavolejte [Přeposlání e-mailu](/cs/docs/api-reference/emails/forward/) (`POST /emails/{id}/forward`).

**cURL**

```bash
curl https://api.emailit.com/v2/emails/em_33VtK8mRq1xZp7LwN4cY2bHsDfa/forward \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "support@acme.com",
    "include_headers": true,
    "comment": "Customer says this receipt never arrived. Can you check?"
  }'
```

**Node.js**

```javascript
const forwarded = await emailit.emails.forward('em_33VtK8mRq1xZp7LwN4cY2bHsDfa', {
  to: 'support@acme.com',
  include_headers: true,
  comment: 'Customer says this receipt never arrived. Can you check?',
});
```

**Python**

```python
forwarded = client.emails.forward("em_33VtK8mRq1xZp7LwN4cY2bHsDfa", {
    "to": "support@acme.com",
    "include_headers": True,
    "comment": "Customer says this receipt never arrived. Can you check?",
})
```

**PHP**

```php
$forwarded = $emailit->emails()->forward('em_33VtK8mRq1xZp7LwN4cY2bHsDfa', [
    'to' => 'support@acme.com',
    'include_headers' => true,
    'comment' => 'Customer says this receipt never arrived. Can you check?',
]);
```

Odpověď je stejná jako [odpověď na odeslání](/cs/docs/email-api/send-email/#read-the-response), navíc obsahuje `original_id` a zprávu „Email has been queued for forwarding“. Přeposlání selže s `422 Cannot forward email`, pokud je originál příchozí e-mail, nebo pokud byl jeho obsah smazán.

## Související

- [Opakované odeslání e-mailu](/cs/docs/api-reference/emails/retry/)
- [Přeposlání e-mailu](/cs/docs/api-reference/emails/forward/)
- [Stavy e-mailů](/cs/docs/logs/email-statuses/)
- [Detail e-mailu](/cs/docs/logs/email-details/)

---
Zdroj: https://emailit.com/cs/docs/email-api/retry-and-forward/
