Nette\Mail
Třída pro odesílání emailů.
Příklad použití:
$mail = new Mail;
$mail->setFrom('Franta <franta@example.com>');
// nebo $mail->setFrom('franta@example.com', 'Franta');
$mail->addTo('petr@example.com');
$mail->setSubject('Potvrzení objednávky');
$mail->setBody("Dobrý den,\nvaše objednávka byla přijata.");
$mail->send();
Můžete využít i fluent interface:
$mail->setFrom('Franta <franta@example.com>')->addTo('petr@example.com')->send();
Do emailu lze vkládat přílohy:
$mail->addAttachment('example.zip');
Je také možné odesílat HTML emaily:
$mail->setHTMLBody('<b>Sample HTML</b> <img src="background.gif">');
Vložené obrázky lze do emailu vkládat metodou
$mail->addEmbeddedFile('background.gif'), nicméně není to
potřeba. Nette automaticky vyhledá a vloží všechny soubory odkazované
v HTML kódu. Toto chování lze vypnout uvedením FALSE jako
druhého parameteru metody setHtmlBody().
Pokud HTML email nemá textovou alternativu, bude vygenerována automaticky.
Pokud HTML email nemá nastavený subjekt, bude vzat z elementu
<title>.
Třídu Mail lze dobře kombinovat s šablonami:
$template = new Template;
$template->setFile('email.phtml');
$mail = new Mail;
$mail->setFrom('Franta <franta@example.com>');
$mail->addTo('petr@example.com');
$mail->setHtmlBody($template); // nebo $mail->setBody($template) pro textovou šablonu
$mail->send();
Do šablony bude automaticky vložená proměnná $mail, je tedy
možné přímo v šabloně nastavit další hlavičky emailu.
Chceme-li využít proměnné v šabloně, je vhodné zaregistrovat patřičný filtr.
$template->registerFilter(new LatteFilter);
Vlastní mailer lze nastavit dvěma způsoby:
class MyMailer implements IMailer
{
function send(Mail $mail)
{
file_put_contents('email.eml', $mail->generateMessage());
}
}
// 1. varianta
Mail::$defaultMailer = 'MyMailer'; // nebo new MyMailer
// 2. varianta
$mail = new Mail;
$mail->setMailer(new MyMailer);
Viz také:



