# Odesílání e-mailů pomocí PHP

> Naučte se odesílat e-maily v PHP pomocí Emailit PHP SDK. Od jednoduchých zpráv přes šablony a přílohy až po naplánované doručení – vše s čistým a moderním API.

2026-03-03 · George (https://x.com/thegeorge, https://www.linkedin.com/in/jiri-zizka/)

Odesílání e-mailů z PHP tradičně znamenalo potýkání se s funkcí `mail()`, konfigurací SMTP serverů nebo používáním těžkopádných závislostí. **Emailit PHP SDK** vám nabízí čisté a moderní řešení. Můžete odesílat transakční e-maily, spravovat domény, ověřovat adresy a zpracovávat webhooky – to vše prostřednictvím jednoduchého API klienta.

PHP zůstává jedním z nejpoužívanějších jazyků pro webový vývoj a odesílání e-mailů je základním požadavkem téměř každé PHP aplikace. Ať už vytváříte SaaS produkt, e-shop nebo systém pro správu obsahu, spolehlivé doručování e-mailů je nezbytné pro registraci uživatelů, resetování hesel, potvrzování objednávek a marketingové kampaně. Místo spoléhání na vestavěnou PHP funkci `mail()`, která nabízí omezenou kontrolu a žádné záruky doručení, použití specializovaného e-mailového API zajistí, že vaše zprávy skutečně dorazí do schránky.

V této příručce si projdeme instalaci SDK a jeho použití pro odesílání e-mailů z jakékoli PHP aplikace.

## Požadavky

- PHP 8.1 nebo vyšší
- [Emailit účet](https://app.emailit.com/register) s API klíčem
- Composer

## Instalace

Nainstalujte SDK pomocí Composeru:

```bash
composer require emailit/emailit-php
```

Emailit PHP SDK je dostupné jako [Composer balíček](https://packagist.org/packages/emailit/emailit-php), takže se bezproblémově integruje do jakéhokoli PHP projektu, který používá Composer pro správu závislostí. Není potřeba ručně vkládat soubory nebo používat vlastní autoloadery.

## Inicializace klienta

Vytvořte instanci klienta s vaším API klíčem:

```php
require 'vendor/autoload.php';

$emailit = Emailit::client('your_api_key');
```

Váš API klíč najdete v [rozhraní Emailitu](https://app.emailit.com/) v sekci **API Keys**.

## Odeslání základního e-mailu

Odeslání e-mailu vyžaduje pouze jedno volání metody:

```php
$email = $emailit->emails()->send([
    'from'    => 'hello@yourdomain.com',
    'to'      => ['user@example.com'],
    'subject' => 'Ahoj z Emailit',
    'html'    => '<h1>Vítejte!</h1><p>Děkujeme za registraci.</p>',
]);

echo $email->id;     // em_abc123...
echo $email->status; // pending
```

Všechny metody služby vrací typované objekty zdrojů s přímým přístupem k vlastnostem, takže vždy přesně víte, s čím pracujete.

Ve srovnání s používáním nativní PHP funkce `mail()` vám odesílání e-mailů přes API poskytuje sledování doručení, zpracování odrazů a podrobné informace o stavu každé zprávy. Nemusíte se starat o konfiguraci Sendmail nebo Postfix na vašem serveru a získáte spolehlivé doručování napříč všemi hlavními poskytovateli e-mailů jako Gmail, Outlook a Yahoo.

## Odeslání se šablonou

Pokud jste vytvořili šablonu ve webovém rozhraní Emailitu, můžete na ni odkazovat pomocí slugu a předat proměnné:

```php
$email = $emailit->emails()->send([
    'from'      => 'hello@yourdomain.com',
    'to'        => 'user@example.com',
    'template'  => 'welcome_email',
    'variables' => [
        'name'    => 'Jan Novák',
        'company' => 'Acme s.r.o.',
    ],
]);
```

Šablony udržují obsah vašich e-mailů mimo kódovou základnu a umožňují ne-vývojářům aktualizovat texty bez nasazení. To je obzvláště užitečné pro transakční e-maily jako uvítací zprávy, odkazy pro resetování hesla, účtenky a oznámení o doručení, kde se design a formulace mění častěji než kód, který je spouští.

## Odeslání s přílohami

Připojte soubory předáním obsahu zakódovaného v base64:

```php
$email = $emailit->emails()->send([
    'from'        => 'faktury@yourdomain.com',
    'to'          => 'zakaznik@example.com',
    'subject'     => 'Vaše faktura č. 12345',
    'html'        => '<p>Fakturu najdete v příloze.</p>',
    'attachments' => [
        [
            'filename'     => 'faktura.pdf',
            'content'      => base64_encode(file_get_contents('faktura.pdf')),
            'content_type' => 'application/pdf',
        ],
    ],
]);
```

Můžete připojit PDF, obrázky, tabulky nebo jakýkoli jiný typ souboru. Běžně se to používá pro odesílání faktur, reportů nebo generovaných dokumentů přímo z vaší PHP aplikace bez nutnosti samostatného odkazu ke stažení.

## Naplánování e-mailu na později

Předejte časové razítko `scheduled_at` pro odeslání v budoucnu:

```php
$email = $emailit->emails()->send([
    'from'         => 'pripominky@yourdomain.com',
    'to'           => 'user@example.com',
    'subject'      => 'Připomínka schůzky',
    'html'         => '<p>Vaše schůzka je zítra ve 14:00.</p>',
    'scheduled_at' => '2026-04-10T09:00:00Z',
]);

echo $email->status;       // scheduled
echo $email->scheduled_at; // 2026-04-10T09:00:00Z
```

Naplánované e-maily lze zrušit před odesláním:

```php
$emailit->emails()->cancel('em_abc123');
```

Plánování je užitečné pro časově citlivou komunikaci jako připomínky schůzek, oznámení o obnovení předplatného a drip kampaně, kde čas odeslání je stejně důležitý jako samotný obsah.

## Seznam a správa odeslaných e-mailů

Získejte stránkovaný seznam vašich e-mailů:

```php
$emails = $emailit->emails()->list(['page' => 1, 'limit' => 10]);

foreach ($emails as $email) {
    echo $email->id . ' - ' . $email->status . "\n";
}
```

Opakujte neúspěšný e-mail:

```php
$emailit->emails()->retry('em_abc123');
```

Úplná viditelnost vašich odeslaných e-mailů, jejich stavu doručení a možnost opakovat neúspěšné pokusy vám poskytuje úroveň kontroly, kterou PHP funkce `mail()` jednoduše nemůže poskytnout. To je kritické pro aplikace, kde každý e-mail má význam, jako jsou transakční účtenky, odkazy pro ověření účtu a kódy pro dvoufaktorové ověření.

## Ověření e-mailových adres před odesláním

Snižte počet odrazů ověřením adres předem:

```php
$result = $emailit->emailVerifications()->verify([
    'email' => 'test@example.com',
]);

echo $result->status; // valid
echo $result->score;  // 0.95
echo $result->risk;   // low
```

Ověřování e-mailů je osvědčenou praxí pro ochranu vaší reputace odesílatele. Odesílání na neplatné nebo dočasné e-mailové adresy zvyšuje míru odrazů, což může spustit spamové filtry a poškodit doručitelnost napříč celou vaší doménou. Ověřováním adres před odesláním udržujete nízkou míru odrazů a neporušenou reputaci.

## Zpracování webhook událostí

SDK obsahuje typované třídy událostí a ověřování podpisu pro webhooky. To vám umožňuje reagovat na události doručení v reálném čase:

```php
use Emailit\WebhookSignature;
use Emailit\Events\EmailDelivered;
use Emailit\Events\EmailBounced;

$event = WebhookSignature::verify(
    file_get_contents('php://input'),
    $_SERVER['HTTP_X_EMAILIT_SIGNATURE'],
    $_SERVER['HTTP_X_EMAILIT_TIMESTAMP'],
    'your_webhook_signing_secret'
);

match (true) {
    $event instanceof EmailDelivered => handleDelivered($event),
    $event instanceof EmailBounced   => handleBounce($event),
    default                          => log("Nezpracováno: {$event->type}"),
};
```

Webhooky umožňují vaší PHP aplikaci okamžitě reagovat, když je e-mail doručen, odražen, otevřen nebo na něj kliknuto. To je nezbytné pro vytváření workflow řízených událostmi, jako je aktualizace CRM při doručení zprávy, upozornění vašeho týmu podpory na odrazy nebo sledování metrik zapojení pro vaše e-mailové kampaně.

## Zpracování chyb

SDK vyvolává typované výjimky, takže můžete přesně zpracovat každý případ chyby:

```php
use Emailit\Exceptions\AuthenticationException;
use Emailit\Exceptions\RateLimitException;
use Emailit\Exceptions\UnprocessableEntityException;
use Emailit\Exceptions\ApiErrorException;

try {
    $emailit->emails()->send([...]);
} catch (AuthenticationException $e) {
    // Neplatný API klíč (401)
} catch (RateLimitException $e) {
    // Příliš mnoho požadavků (429)
} catch (UnprocessableEntityException $e) {
    // Validace selhala (422)
} catch (ApiErrorException $e) {
    // Jakákoli jiná API chyba
    echo $e->getHttpStatus();
}
```

Správné zpracování chyb zajišťuje, že se vaše aplikace elegantně degraduje, když se něco pokazí. Výjimky omezení rychlosti lze například zpracovat strategií opakování, zatímco chyby ověření by měly spustit upozornění, abyste mohli rotovat váš API klíč.

## Více než jen e-maily

SDK vám poskytuje přístup k celému Emailit API, nejen k odesílání. Můžete spravovat domény, API klíče, publikum, odběratele, šablony, potlačení, kontakty a události – to vše z PHP:

```php
$domain = $emailit->domains()->create(['name' => 'example.com']);
$contact = $emailit->contacts()->create(['email' => 'user@example.com']);
$templates = $emailit->templates()->list();
```

To dělá z Emailit PHP SDK kompletní sadu nástrojů pro e-mailovou infrastrukturu. Místo používání samostatných knihoven nebo služeb pro správu domén, seznamy kontaktů a odesílání e-mailů můžete vše zpracovat prostřednictvím jediného, konzistentního PHP klienta.

## Začněte

Nainstalujte SDK a odešlete svůj první e-mail za méně než minutu:

```bash
composer require emailit/emailit-php
```

Podívejte se na kompletní dokumentaci SDK na [GitHubu](https://github.com/emailit/emailit-php) nebo přejděte na [API Reference](https://emailit.com/docs/api-reference/endpoints) pro podrobnosti o každém endpointu.

---

Source: https://emailit.com/cs/blog/odesilani-emailu-pomoci-php/
