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

> Naučte se odesílat e-maily v Laravelu pomocí balíčku Emailit Laravel. Integruje se jako nativní mailový transport a poskytuje vám plný přístup k Emailit API prostřednictvím Facade.

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

Laravel je dodáván s vynikající podporou pro odesílání e-mailů přímo z krabice, ale stále potřebujete spolehlivou doručovací službu na pozadí. Balíček **Emailit Laravel** se připojuje přímo do mailového systému Laravelu jako nativní transport. Vaše stávající Mailables, Notifications a volání `Mail::send()` fungují bez jakýchkoli změn kódu. Navíc získáte plný přístup k Emailit API prostřednictvím pohodlného Facade.

Odesílání e-mailů je jedním z nejčastějších úkolů v jakékoli Laravel aplikaci. Potvrzení registrace uživatelů, resetování hesel, účtenky objednávek, aktualizace zásilek a marketingové newslettery - to vše závisí na spolehlivém doručování e-mailů. Zatímco Laravel poskytuje výkonnou abstrakční vrstvu pro e-maily, skutečné doručování stále závisí na transportu, který nakonfigurujete. Použití e-mailového API jako je Emailit vám poskytne vysokou doručitelnost, sledování doručení, správu odrazů a podrobné analýzy, aniž byste museli spravovat SMTP servery nebo se starat o reputaci IP adres.

V této příručce si projdeme nastavení Emailit v Laravel aplikaci a odesílání e-mailů pomocí standardního Laravel mailového systému i Emailit Facade.

## Požadavky

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

## Instalace

Nainstalujte balíček přes Composer:

```bash
composer require emailit/emailit-laravel
```

Balíček automaticky objeví svého service providera, takže není potřeba ruční registrace. Funguje s Laravel 10, 11 a 12 přímo z krabice.

## Konfigurace

Přidejte svůj API klíč do `.env`:

```
EMAILIT_API_KEY=vas_api_klic
```

Nastavte Emailit jako výchozí mailer:

```
MAIL_MAILER=emailit
```

Přidejte `emailit` mailer do pole mailerů v `config/mail.php`:

```php
'mailers' => [
    // ...

    'emailit' => [
        'transport' => 'emailit',
    ],
],
```

Volitelně publikujte konfigurační soubor pro přizpůsobení základní URL API:

```bash
php artisan vendor:publish --tag=emailit-config
```

Konfigurace je záměrně minimální. Jakmile nastavíte svůj API klíč a výchozí mailer, Laravel automaticky směruje všechny odchozí e-maily přes Emailit. Není potřeba konfigurovat SMTP hosty, porty, nastavení šifrování nebo přihlašovací údaje jako u tradičního nastavení mailového serveru.

## Odesílání e-mailů s Laravel Mail

Po konfiguraci fungují všechny funkce Laravel mailu přímo z krabice. Nic ve vašem stávajícím kódu se nemusí měnit.

### Použití Mailable

Vytvořte Mailable třídu jako obvykle:

```php
namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;

class VitejteEmail extends Mailable
{
    use Queueable, SerializesModels;

    public function __construct(
        public readonly User $user,
    ) {}

    public function envelope(): Envelope
    {
        return new Envelope(
            subject: 'Vítejte v naší aplikaci',
        );
    }

    public function content(): Content
    {
        return new Content(
            view: 'emails.vitejte',
        );
    }
}
```

Poté jej odešlete:

```php
use Illuminate\Support\Facades\Mail;
use App\Mail\VitejteEmail;

Mail::to('uzivatel@priklad.cz')->send(new VitejteEmail($user));
```

Frontové e-maily, Markdown mailables a Notifications fungují přesně tak, jak byste očekávali. Emailit sedí transparentně za Laravel mailovou vrstvou, takže jej můžete vyměnit za jakýkoli stávající transport jako SMTP, Mailgun nebo SES, aniž byste se dotkli kódu aplikace. To usnadňuje testování Emailit vedle vašeho současného poskytovatele nebo postupnou migraci.

## Použití Emailit Facade

Pro funkce, které jdou nad rámec toho, co nabízí Laravel mailový systém, jako jsou šablony s proměnnými, naplánované odesílání nebo správa API zdrojů, použijte `Emailit` Facade. Poskytuje vám přímý přístup k plnému [Emailit PHP SDK](https://github.com/emailit/emailit-php).

### Odeslání e-mailu přes API

```php
use Emailit\Laravel\Facades\Emailit;

$email = Emailit::emails()->send([
    'from'    => 'ahoj@vasedomena.cz',
    'to'      => ['uzivatel@priklad.cz'],
    'subject' => 'Ahoj z Emailit',
    'html'    => '<h1>Vítejte!</h1>',
]);

echo $email->id;
echo $email->status;
```

### Odeslání se šablonou

Odkazujte na šablony, které jste vytvořili ve webovém rozhraní Emailitu, a předávejte dynamické proměnné:

```php
use Emailit\Laravel\Facades\Emailit;

$email = Emailit::emails()->send([
    'from'      => 'ahoj@vasedomena.cz',
    'to'        => 'uzivatel@priklad.cz',
    'template'  => 'vitejte_email',
    'variables' => [
        'jmeno'     => 'Jan Novák',
        'spolecnost' => 'Acme s.r.o.',
    ],
]);
```

Použití serverových šablon je mocný vzor pro Laravel aplikace. Vaši designéři a marketéři mohou aktualizovat obsah e-mailů, styling a rozložení ve webovém rozhraní Emailitu bez nutnosti změn kódu nebo nových nasazení. PHP kód pouze potřebuje předat data a šablona se postará o vykreslení.

### Naplánování e-mailu

```php
use Emailit\Laravel\Facades\Emailit;

$email = Emailit::emails()->send([
    'from'         => 'pripominky@vasedomena.cz',
    'to'           => 'uzivatel@priklad.cz',
    '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',
]);
```

Naplánované e-maily jsou zpracovávány výhradně Emailit API, což znamená, že fungují nezávisle na vašem Laravel queue systému. To je ideální pro připomínky schůzek, oznámení o obnovení předplatného a časově citlivé kampaně, kde chcete zaručené doručení v konkrétní čas, i když váš aplikační server zažívá výpadek.

### Odeslání s přílohami

```php
use Emailit\Laravel\Facades\Emailit;

$email = Emailit::emails()->send([
    'from'        => 'faktury@vasedomena.cz',
    'to'          => 'zakaznik@priklad.cz',
    'subject'     => 'Vaše faktura č. 12345',
    'html'        => '<p>Vaši fakturu najdete v příloze.</p>',
    'attachments' => [
        [
            'filename'     => 'faktura.pdf',
            'content'      => base64_encode(file_get_contents('faktura.pdf')),
            'content_type' => 'application/pdf',
        ],
    ],
]);
```

## Správa zdrojů

Facade zpřístupňuje každou službu z Emailit API, takže můžete spravovat celou svou e-mailovou infrastrukturu z Laravelu.

### Domény

```php
use Emailit\Laravel\Facades\Emailit;

$domain = Emailit::domains()->create([
    'name' => 'priklad.cz',
    'track_loads' => true,
    'track_clicks' => true,
]);

$domain = Emailit::domains()->verify('sd_123');
```

Správa odesílacích domén přes API je užitečná pro SaaS platformy, které potřebují nastavit vlastní domény pro každého zákazníka. Můžete automatizovat celý workflow ověřování domén, včetně kontrol DNS záznamů, přímo z vaší Laravel aplikace.

### Kontakty

```php
use Emailit\Laravel\Facades\Emailit;

$contact = Emailit::contacts()->create([
    'email' => 'uzivatel@priklad.cz',
    'first_name' => 'Jan',
    'last_name' => 'Novák',
]);

$contacts = Emailit::contacts()->list();
```

### Ověřování e-mailů

```php
use Emailit\Laravel\Facades\Emailit;

$result = Emailit::emailVerifications()->verify([
    'email' => 'test@priklad.cz',
]);

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

Ověřování e-mailových adres v okamžiku registrace nebo odeslání formuláře vám pomáhá udržovat čistý seznam kontaktů a chrání vaši reputaci odesílatele. Vysoké míry odrazů z neplatných adres mohou způsobit, že vaše e-maily skončí ve spamových složkách, takže ověřování je osvědčenou praxí pro jakoukoli Laravel aplikaci, která odesílá transakční nebo marketingové e-maily ve velkém měřítku.

## Dependency injection

Pokud nechcete používat Facades, můžete klienta vložit přímo:

```php
use Emailit\EmailitClient;

class EmailController extends Controller
{
    public function send(EmailitClient $emailit)
    {
        $email = $emailit->emails()->send([
            'from'    => 'ahoj@vasedomena.cz',
            'to'      => ['uzivatel@priklad.cz'],
            'subject' => 'Ahoj',
            'html'    => '<p>Zdravím!</p>',
        ]);

        return response()->json(['id' => $email->id]);
    }
}
```

Laravel service container automaticky vyřeší instanci `EmailitClient` s API klíčem z vaší konfigurace, takže získáte stejné pohodlí jako u Facade s výhodami testovatelnosti dependency injection.

## Zpracování chyb

Základní PHP SDK vyhazuje typované výjimky, takže můžete zachytit konkrétní typy chyb:

```php
use Emailit\Exceptions\AuthenticationException;
use Emailit\Exceptions\RateLimitException;
use Emailit\Exceptions\ApiErrorException;
use Emailit\Laravel\Facades\Emailit;

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

V Laravel aplikaci můžete také zpracovávat tyto výjimky globálně ve svém exception handleru nebo použít middleware k zachycení chyb rate limitu a implementaci automatické logiky opakování. To zajišťuje, že vaše aplikace zůstane odolná i při odesílání velkých objemů e-mailů.

## Všechny dostupné služby

Facade vám poskytuje přístup ke všemu v Emailit API:

| Služba | Použití | Popis |
| --- | --- | --- |
| E-maily | `Emailit::emails()` | Odesílání, výpis, získání, zrušení, opakování e-mailů |
| Domény | `Emailit::domains()` | Vytváření, ověřování, výpis, správa odesílacích domén |
| API klíče | `Emailit::apiKeys()` | Vytváření, výpis, správa API klíčů |
| Publikum | `Emailit::audiences()` | Vytváření, výpis, správa publika |
| Odběratelé | `Emailit::subscribers()` | Přidávání, výpis, správa odběratelů |
| Šablony | `Emailit::templates()` | Vytváření, výpis, publikování e-mailových šablon |
| Potlačení | `Emailit::suppressions()` | Vytváření, výpis, správa potlačených adres |
| Ověřování e-mailů | `Emailit::emailVerifications()` | Ověřování e-mailových adres |
| Seznamy ověřování e-mailů | `Emailit::emailVerificationLists()` | Hromadné ověřování e-mailů |
| Webhooky | `Emailit::webhooks()` | Vytváření, výpis, správa webhooků |
| Kontakty | `Emailit::contacts()` | Vytváření, výpis, správa kontaktů |
| Události | `Emailit::events()` | Výpis a získávání událostí |

## Začněte

Nainstalujte balíček a začněte odesílat za méně než minutu:

```bash
composer require emailit/emailit-laravel
```

Podívejte se na kompletní dokumentaci balíčku na [GitHubu](https://github.com/emailit/emailit-laravel), [Emailit PHP SDK](https://github.com/emailit/emailit-php) pro základní klient, 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-laravel/
