Návody • MARCH 3, 2026

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.
Odesílání e-mailů pomocí PHP
Odesílání e-mailů pomocí PHP

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

Instalace

Nainstalujte SDK pomocí Composeru:

composer require emailit/emailit-php

Emailit PHP SDK je dostupné jako Composer balíček, 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:

require 'vendor/autoload.php';

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

Váš API klíč najdete v Emailit dashboardu v sekci API Keys.

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

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

$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í s šablonou

Pokud jste vytvořili šablonu v Emailit dashboardu, můžete na ni odkazovat pomocí slugu a předat proměnné:

$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:

$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:

$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:

$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ů:

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

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

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

$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:

$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:

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:

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:

$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:

composer require emailit/emailit-php

Podívejte se na kompletní dokumentaci SDK na GitHubu nebo přejděte na API Reference pro podrobnosti o každém endpointu.

Blog

Nejnovější zprávy a aktualizace přímo od Emailitu.

Buďte v obraze s nejnovějšími články z blogu Emailit.

Související příspěvky

Nejnovější poznatky, návody a aktuality od týmu Emailit

Změny v omezení rychlosti
Oznámení
8 min čtení

Změny v omezení rychlosti

S uvedením API v2 jsme provedli některé změny v omezeních rychlosti.

Oct 10, 2025
Nová dokumentace
Oznámení
10 min čtení

Nová dokumentace

Jedno místo, kde najdete vše potřebné pro začátek práce s Emailit.

Oct 12, 2025
API pro ověření e-mailových adres je nyní k dispozici
Oznámení
2 min čtení

API pro ověření e-mailových adres je nyní k dispozici

Ověřte e-mailové adresy před odesláním pomocí našeho nového API pro ověřování e-mailů. Snižte počet nedoručených zpráv a chraňte svou pověst odesílatele.

Feb 3, 2026