Mailer — Přehled
Modul pro odesílání e-mailů s výměnnými transporty. Konfigurace přes .env, odesílání přes MessageBuilder + MailerFactory.
Architektura
MailerFactory::create()
└── CoreMailer
└── TransportInterface
├── SmtpTransport (výchozí)
├── PostmarkTransport
├── EcomailTransport
├── MailTransport (PHP mail())
└── NullTransport (testovací — nic neodešle)
MailerFactory čte MAILER_DRIVER z .env a vrátí nakonfigurovaný CoreMailer.
Konfigurace
Společné proměnné
MAILER_DRIVER=smtp # smtp | postmark | ecomail | mail | null
MAIL_FROM=noreply@firma.cz
MAIL_FROM_NAME=Firma s.r.o.
SMTP (výchozí)
MAILER_DRIVER=smtp
SMTP_HOST=smtp.firma.cz
SMTP_PORT=587
SMTP_USERNAME=user@firma.cz
SMTP_PASSWORD=tajneheslo
SMTP_SECURE=true # true = STARTTLS, false = SMTPS
Postmark
MAILER_DRIVER=postmark
POSTMARK_API_TOKEN=xxxx
Ecomail
MAILER_DRIVER=ecomail
ECOMAIL_API_KEY=xxxx
ECOMAIL_REPLY_TO=reply@firma.cz
PHP mail()
MAILER_DRIVER=mail
MAIL_SENDER=bounce@firma.cz # volitelný Sender header (Return-Path)
Null transport (testy, dev)
MAILER_DRIVER=null
Test doručení
Pokud je v konfigu nastaven příznak email:on_test = true:
MessageBuilder::to()přesměruje příjemce na adresu zemail:testMessageBuilder::cc()abcc()jsou potlačeny (prázdné pole)
# config/websiteN.yaml
email:
on_test: true
test: dev@firma.cz
Inicializace v bootstrap
app/mailer.php je načteno automaticky při startu aplikace:
// app/mailer.php
$mailer = MailerFactory::create();
$mailer je globální instance — v praxi se ale MailerFactory::create() volá přímo v místě použití.