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
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
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
}
?>