$message->send() nefunguje a nevyhodí ani error

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Čamo
Člen | 798
+
0
-

Prosím Vás mám takýto kód na rozposielanie emailov:

$template = $this->createTemplate();
$template->setFile(APP_DIR . '/templates/@mail/article.latte');
$template->article = $article;

$message = clone $this->context->message;
foreach ($emails as $email => $name) {
    $message->addTo($email, $name);
}
$message->setHtmlBody($template, false);

a chcem to poslať takto:

$message->send();

Ale nič sa nepošle(mám nainštalovaný Test Mail Server Tool) a nevyhodí to ani žiadnu chybu.
Keď to prepíšem na:

$mailer = new SendmailMailer;
$mailer->send($message);

Tak to normálne funguje. Ale potreboval by som pochopiť, prečo nefunguje ten prvý príklad.
Netuší niekto z vás v čom je problém pri $message->send()?

Mysteria
Člen | 797
+
0
-

Chápu to správně, že v tom prvním případě se snažíš volat metodu send nad objektem Nette\Mail\Message?

Šaman
Člen | 2666
+
0
-

A v jaké verzi Nette? V nové už Message ani nemá metodu send. Je to stejný problém, jako s ActiveRecord entitou. Message nemá zajímat jak se pošle. Ta si ručí jen za svoji zprávu, šablonu, formátování a uchování informace odkud kam. Zbytek řeší mailer, který umí zprávu odeslat.

Etch
Člen | 403
+
0
-

Message už nemá metodu send(), ale musí se použít mailer. Už někdy od cca Nette 2.0 byla metoda send() deprecated.

EDIT: Od verze 2.1.0

Editoval Etch (20. 12. 2014 23:11)

Čamo
Člen | 798
+
0
-

Áno je to starší projekt. A všade v ňom sa používa Nette\Mail\Message->send(). Preto sa snažím to urobiť cez ->send(). V composeri mám

"nette/nette": "2.0.x"

PS: Ale nemala by ladenka vyhodiť chybu, že metóda send() neexistuje?

Editoval Čamo (21. 12. 2014 10:14)

Šaman
Člen | 2666
+
0
-

U tebe asi existuje. V tom případě ale potřebuje mailer, sama se neodešle. A ten ji musíš pomocí setMailer(), jinak se vezme nějaký defaultní (a ten je čertví co, klidně to může posílat pomocí PHP fce send() a tvůj mailer může být třeba nakonfigurovaný SmtpMailer)

Editoval Šaman (21. 12. 2014 14:06)

Čamo
Člen | 798
+
0
-

Ok díky a sorry, že píšem s takým oneskorením. Problém bol v tom, že metóda send() nič neposiela(kto by to bol čakal…), ale ukladá dáta do tabuľky a posiela to CRON. Preto v logu nič nebolo..
Štastné a veselé!!!

Editoval Čamo (24. 12. 2014 21:33)