Fuelphpでメール送信時にメールサーバーへ接続できないなどのエラーキャッチ

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エラーも考慮しなければならない。

 

初期のままSMTPを利用していると

「ot an unexpected response from host on command: [MAIL FROM:<メールアドレス>] expecting: 250 received:」

となってメールが送れなくなる

以下のようにemailドライバーのSMTPの部分を修正したほうが安全

https://github.com/fuel/email/commit/2eab3974e4c38b9fea0a7ebbad3d4e1f20076448