Nefunguje mi odesílání mailů pomocí latte šablony

ryvova
Člen | 9
+
0
-

Ahoj,

asi je to úplná prkotina, ale nemůžu na to přijít. Podle návodu na https://doc.nette.org/cs/mail mám:

$mail = new Message();
$latte = new Engine();

$mail
	->setFrom('xyz@gmail.com')
    ->addTo($data['email'])
    ->setSubject('Potvrzení registrace')
    ->setHtmlBody($latte->render(__DIR__ . '/../templates/Sign/email.latte'));

$this->mailer->send($mail);

a skončím na chybě Nette\Mail\Message::setHtmlBody(): Argument #1 ($html) must be of type string, null given

Cesta k templatě je nastavená správně, když tam dám chybnou, je jiná chybová hláška, že to nemůže najít templatu.
Na stejné chybě skončím i při pokusu použít

$template = $this->createTemplate()->setFile('email.latte');

co se v nějakém jiném příspěvku někomu doporučovalo.
Pro jistotu jsem v šabloně nechala pouze statický text, abych měla jistotu, že to není tím a stejně to nefunguje.
Poněkud mne překvapuje, že metoda render u šablony vrací void() – čekala bych, že to vrátí string, když to má lézt jako parametr do setHtmlBody(). Pokud se vykašlu na latte a dám text rovnou do té fce, tak to funguje.

Dík za každý tip, kde je zakopaný pes.

Kamil Valenta
Člen | 762
+
+2
-
$latte->renderToString(__DIR__ . '/../templates/Sign/email.latte')
ryvova
Člen | 9
+
0
-

Kamil Valenta napsal(a):

$latte->renderToString(__DIR__ . '/../templates/Sign/email.latte')

To byla ale blbá chyba. Díky, funguje :-)