2015-04-09 4 views
1

У меня есть этот код в моей установке CakePHP 2, чтобы отправить электронную почтуCakePHP объекта электронной почты уведомить о недостаточности

if($Email->template('invitation', 'default') 
         ->emailFormat('html') 
         ->from(array('[email protected]' => 'MyHospitals')) 
         ->to($email) 
         ->subject($subject) 
         ->send()){ 

Это прекрасно работает до тех пор, как настройки SMTP и все в порядке. Однако, если кто-то изменяет пароль, это терпит неудачу .... есть ли чек, который я могу добавить, который скажет мне, что объект $ Email был отформатирован правильно, так что, если бы это было не так, я могу убить его изящно, а не появляться ошибки на странице

благодаря

+3

вы пробовали 'попробовать - catch'? – dav

ответ

1
try { 
    if ($Email->template('invitation', 'default') 
     ->emailFormat('html') 
     ->from(array('[email protected]' => 'MyHospitals')) 
     ->to($email) 
     ->subject($subject) 
     ->send()) { 
     // Do success stuff 
    } else { 
     // Handle failure (no exception thrown) 
    } 
} catch (Exception $e) { 
    // Handle exceptions 
} 
+0

'CakeEmail :: send()' всегда возвращает массив с ключами 'headers' и' message', поэтому 'if' /' else' ничего не сделает, все отказы должны обрабатываться в блоке 'catch' , – ndm