Mail na serveru padá – Received a invalid response

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

Mám problém při odesílání mailu – na localu funguje. Mám zapnutý debug, loguju případné chyby, ale pokaždé se mi pouze vyechuje „Received a invalid response“. Vypozoroval jsem, že je pravděpodobně problém v $mail->setHtmlBody($template);. Přikládám celou action:

<?php
public function actionTest() {
    $template = $this->createTemplate();
    $template->setFile(APP_DIR . '/templates/Mail.test.latte');

    $allUsers = array(
      0 => array('email' => '...'),
      1 => array('email' => '...'),
    );

    foreach ($allUsers as $user) {
      try {
        $mail = new Mail;
        $mail->setMailer(new SmtpMailer((array)Environment::getConfig('smtpMailer')));
        $mail->setFrom('volejbal.roudnice@gmail.com', 'Volejbal');
        $mail->addTo($user['email']);
        $mail->setSubject('Volejbal test');
        $mail->setHtmlBody($template);
        $mail->send();
        $this->flashMessage($user['email']. ' - OK', 'positive');
      } catch (Exception $e) {
        Debug::log($e);
        $this->flashMessage($e->getMessage(), 'negative');
      }
    }
?>
Pancus
Člen | 14
+
0
-

Odeslání funguje, pokud vytvořím template takto:

<?php
$template = new FileTemplate;
?>

Proč? Nechce se mi potom zase registrovat helpery a latte :-)

kravčo
Člen | 721
+
0
-

Keď nahradíš $mail->setHtmlBody($template); za $mail->setHtmlBody('Hello world!');, tak to funguje?

Ak je tam chyba, ukáž template…

Pancus
Člen | 14
+
0
-

Ano, takto ($mail->setHtmlBody('Hello world!');) to funguje. Jak mohu zjistit kde je chyba?

kravčo
Člen | 721
+
0
-

Chyba je podľa všetkého v šablóne a prejaví sa pri volaní $template->__toString(TRUE), ktoré spúšťa spracovanie šablóny.

tenerd
Člen | 15
+
0
-

zkus (viz https://forum.nette.org/…2-ve-widgetu#…)

$template = clone $this->createTemplate();
Pancus
Člen | 14
+
0
-

Nakonec pomohlo změnit tohle:

<?php
$body = $template->__toString(TRUE);
$mail->setHtmlBody($body);
?>

Díky všem!

arron
Člen | 464
+
0
-

Ale stejne je to divny…vim, ze jsem to takhle uz jednou taky musel vyresit, ale ztraci se tam ta moznost spolu s tim mailem automaticky odesilat i vlozene obrazky…takze je to spis takovy zvlastni workaround.

David Grudl
Nette Core | 8228
+
0
-

Do šablony se před vykreslením vkládá proměnná $mail, nemůže to být tím?