Fuelphpでメール送信時のエラーキャッチを「EmailValidationFailedException」「EmailSendingFailedException」だけでよいのかなって思っていたけど、SMTPサーバーに接続できないときの例外エラーはキャッチされなかった。
っということでメール送信時に
$email = Email::forge(array(必要な内容を記述)); try { $email->send(); } catch(\EmailValidationFailedException $e) { // バリデーションが失敗したとき echo = 'メールアドレスが正しくないため送信できませんでした。:'.$e->getMessage(); } catch(\EmailSendingFailedException $e) { // ドライバがメールを送信できなかったとき echo 'メール送信に失敗しました。:'.$e->getMessage(); } catch (\Exception $e) { echo = 'メール送信時のその他のエラーが発生しました。:'.$e->getMessage(); }
「Exception」をcatchを付けてそれ以外のエラーをキャッチすることにした。
どのクラウドサービスだって停止することあるんだから、SMTPサーバーへのConnectエラーも考慮しなければならない。