Ako správne odosielať email v Nette 2.4
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- SontoEremo
- Člen | 341
Zdravím…
Rád by som sa spýtal aký je momentálne najlepší spôsob odosielania mailu
aj so šablónou?
Na fóru som našiel dosť informácii ale každé sú rôzne a trochu som
z toho zmetený…
Uvediem príklad…
SignUpFormFactory.php
try {
$this->userManager->add($values->email_adress, $values->password, $date_create, $ip_adress, $token);
$params = array(
'verifyLink' => $this->linkGenerator->link('Members:verify', ['token' => $token]),
);
$mail = new Message;
$latte = new Engine;
$mail->setFrom('Soulbook <jozef.sipos197@gmail.com>')
->addTo($values->email_adress)
->setSubject('Dokončenie Registrácie')
->setBody($latte->renderToString('App\Presenters\Templates\Members\activate.latte', $params));
$this->mailer->send($mail);
Šablóna Activate.latte
{block content}
<p>Registrácia úspešne dokončená!</p>
<p>
Ďakujeme za registráciu na stránke <strong>Soulbook.rip</strong> ore správne dokončenie registrácie prosím aktivujte svoj účet kliknutím na odkaz nižšie.
</p>
<p>
<a href="{$verifyLink|noescape}">Aktivovať účet</a>
</p>
<p>
Pokial Vám kliknutie nefunguje skopírujte odkaz a vložte ho do prehliadača.
</p>
<p>
{$verifyLink|noescape}
</p>
{/block content}
Ale zdá sa mi že niečo nie je v poriadku síce sa email odošle aj ho dostanem ale na gmail už sa zobrazuje aj s celým html kódom...
Mohli by ste ma nasmerovať na správne odosielanie mailu?
Za odpoveďe všetkým vopred Ďakujem.
- CZechBoY
- Člen | 3608
cca tak nějak, akorát lepší dělat template přes Nette\Application\UI\ITemplateFactory než přímo přes latte.
No a teda html se zapisuje přes
$message->setHtmlBody($html);
Editoval CZechBoY (18. 9. 2016 15:42)
- SontoEremo
- Člen | 341
CZechBoY napsal(a):
cca tak nějak, akorát lepší dělat template přes Nette\Application\UI\ITemplateFactory než přímo přes latte.
No a teda html se zapisuje přes
$message->setHtmlBody($html);
Vďaka za odpoveď je toto správne teda?
$template = $this->templateFactory->createTemplate();
$template->setFile('App\Presenters\Templates\Members\activate.latte');
$template->user = $user;
$template->verifyLink = $this->linkGenerator->link('Members:verify', array(
'token' => $token,
));
$mail = new Message;
$mail->setFrom('PageName <email-adress@email.xxx>')
->addTo($values->email_adress)
->setSubject('Aktivácia účtu')
->setHtmlBody($template);
$this->mailer->send($mail);