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
- PHP 8.1 nebo vyšší
- Emailit účet s API klíčem
- Composer
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.


