Nelze odeslat email pomocí Nette\Mail\Message
- chr1s
- Člen | 15
Zdravím, poprvé zkouším odeslat email pomocí Nette, ovšem neúspěšně. V presenteru mám následující kód:
use Nette\Mail\Message;
use Nette\Templating\FileTemplate;
private function sendEmail($order, $products) {
$template = new FileTemplate($this->getContext()->params['appDir'] . '/templates/email.latte');
$template->registerFilter(new Nette\Latte\Engine);
$template->order = $order;
$template->products = $products;
$mail = new Message();
$mail->setFrom('info@server.cz');
$mail->addTo($order['email'], $order['name'] . ' ' . $order['surname']);
$mail->setSubject('Potvrzení objednávky');
$mail->setHtmlBody($template);
$mail->send();
}
Kód skončí s notice Trying to get property of non-object
na
řádce $mail->send();
V laděnce se to dostane až sem
.../libs/Nette/Utils/LimitedScope.php:49 source ▼ eval ()
.
Konkrétně se jedná řádek č. 49 v této funkci:
43: public static function evaluate(/*$code, array $vars = NULL*/)
44: {
45: if (func_num_args() > 1) {
46: self::$vars = func_get_arg(1);
47: extract(self::$vars);
48: }
49: $res = eval('?>' . func_get_arg(0));
50: if ($res === FALSE && ($error = error_get_last()) && $error['type'] === E_PARSE) {
51: throw new Nette\FatalErrorException($error['message'], 0, $error['type'], $error['file'], $error['line'], NULL);
52: }
53: return $res;
54: }
Netušíte někdo co s tím? Předem děkuji za odpověď.
- chr1s
- Člen | 15
pawouk napsal(a):
To se mi opravdu nezda, kopirujes to sem nebo prepisujes? Neni mozne treaba ze mas na misto $mail->send() napsano $meil->send() ? Protoze jinak si to nedovedu vysvetlit, dystak jestli bys nemohl hodit nekam funkcni kod?
Neboj, je to zkopírované a přesně tak to mám v presenteru. Momentálně nemám možnost dát někam kód, ale zkusím to co nejdříve.
- Jan Voráček
- Člen | 90
Není náhodou $order
nebo $products
NULL a
v šabloně se snažíš číst nějakou jejich property?