Problém s odesíláním mailu: $mail->send() ⇒ NULL

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

Ahoj, mám následující zpracování formuláře:

<?php

        public function processSendMailClient(AppForm $form)
        {
            if($form['cancel']->isSubmittedBy()){
                $this->redirect('this#tabs-1');
            }
            if ($form['ok']->isSubmittedBy()) {
                $values = $this->getRequest;

                $mail = new Mail;
                $mail->setFrom('KUK <example@example.com>');
                $mail->addTo($values['email']);
                $mail->setSubject($values['subject_mail']);
                $mail->setHTMLBody($values['desrciption_status_log']);


                if($mail->send()){
                     $this->getPresenter()->flashMessage('Email byl úspěšně odeslán.');

                    /** Ulozeni do status logu */
                    ContractStatusModel::SaveNewStatusLog(array(
                        'contract_id'=>$values['contract_id'],
                        'description_status_log'=>$values['desrciption_status_log'],
                        'id_admin'=>$this->user['id_admin'],
                        'date_write'=>Date("Y-m-d H:i:s", Time()),
                        'contract_status_id'=>'1'
                    ));

                } else {
                     $this->getPresenter()->flashMessage('Email se nezdařilo odeslat', 'warning');

                    /** Ulozeni do status logu */
                    ContractStatusModel::SaveNewStatusLog(array(
                        'contract_id'=>$values['contract_id'],
                        'description_status_log'=>'CHYBA ODESLANI MAILU'.$values['desrciption_status_log'],
                        'id_admin'=>$this->user['id_admin'],
                        'date_write'=>Date("Y-m-d H:i:s", Time()),
                        'contract_status_id'=>'1'
                    ));
                }

            }
            $this->redirect('this', array('contract_id'=>$values['contract_id']));
        }
?>

po zpracování mi email dojde v pořádku, ale pokud dumpnu mail->send():

dump($mail->send()); exit();

tak mi z toho leze NULL :-( a pak mi nebudou fungovat samozřejmě hlášky o úspěšnosti či neúspěšnosti.
v čem je problém, díky?

Editoval Gaudentius (29. 4. 2010 9:32)

Vyki
Člen | 388
+
0
-

Když se mail neodešle, vyhazuje InvalidStateException. Koukni do API https://api.nette.org/…ler.php.html#47. Ošetření můžeš provádět zachycením vyjímky.

<?php
try {
	$mail->send()
} catch (InvalidStateException $e) {
	//neco co se stane pri chybe
}
?>