Pokud potřebujete v PHP napsat, resp. odeslat libovolný e-mail, tak to není vysloveně problém. Ale protože se jedná o stále se opakující proces, tak jsme raději vytvořili třídu, pomocí které je možné celou operaci zjednodušeně provést. Její definice, tedy kód pro sestavení a odeslání e-mailu, je tím pěkně na jednom místě.
Následující kód ukazuje základní použití třídy KT_Mailer, které zároveň obstará velké množství případů použití:
|
1 2 3 4 5 6 7 |
$mailer = new KT_Mailer("email@příjemce.cz", "Jméno/název příjemce", "Předmět e-mailu"); $mailer->setSenderEmail("email@odesílatel.cz"); $mailer->setSenderName("Jméno/název odesílatele"); $mailer->setContent("Vlastní obsah"); $mailer->send(); |
Obsah si můžete celý sestavit sami, nebo do maileru posílat po částech:
|
1 2 3 4 5 6 7 |
... $mailer->addContent("1. část vlastního obsahu"); ... $mailer->addContent("n. část vlastního obsahu"); ... |
Obsah KT_Mailleru je možné v průběhu existence instance třídy smazat, znovu naplnit a odeslat. Díky není nutné znovu zadávat údaje příjemce a odesílatele:
|
1 2 3 4 5 6 7 |
... $mailer->clearContent(); $mailer->setContent("Nový vlastní obsah"); $mailer->send(); ... |
Obsah e-mailu je v rámci KT_Maileru automaticky řešen jako „text/html“ a kódování je nastaveno na UTF-8.
V rámci KT_Maileru je možné přidávat i přílohy ve formě celé cesty souborů na disku, resp. serveru:
|
1 2 3 4 5 6 7 |
... $mailer->addAttachment("celá/cesta/k/souboru"); ... $mailer->addAtachments(array( "celé/cesty/k/souborům" ); ... |
Třída KT_Mailer umí spolupracovat s třídou KT_Content_Replacer, resp. jejími potomky, pomocí čehož je možné vytvořit automatické a vlastní nahrazování obsahu zástupnými znaky.
Pokud si chcete udělat vlastní mailer, stačí vytvořit novou třídu, podědit ji od KT_Mailer a přidat vlastní logiku. Vlastní implementace KT_Maileru dává smysl, pokud máte i nějaký specifický KT_Content_Replacer, řekněme např. KT_Car_Content_Replacer. Potom je vhodné si vytvořit právě i třídu KT_Car_Mailer, která zjednoduší vyvolávání takto specifického maileru a práci s ním. Implementace by mohla vypadat následovně:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php class KT_Car_Mailer extends KT_Mailer { function __construct($recipientEmail, $recipientName = null, $subject = null, $carId = null) { parent::__construct($recipientEmail, $recipientName, $subject); $this->setContentReplacer(new KT_Car_Content_Replacer($carId)); } public function setCar(KT_Car_Model $car) { $this->getContentReplacer()->setItem($car); return $this; } } |
Na KT_Maileru je definováno několik obecně použitelných statických funkcí:
Odebírejte novinky z FW
Sledujte nás!
Follow @ktstudiocz!