エラー処理

2008/06/29 未分類 spok
Qdmailでは、エラーは2種類あります。
  1. Qdmailが発するエラー
  2. PHP本体が発するエラー(PHPの文法間違い等)

Qdmailが発するエラー

Qdmailのエラーについては、内部で処理を行いエラーを画面に出力します。
このエラーメッセージは画面に出力しないこともできます。その場合に、エラーが起こったかどうかを判別するメソッドも用意してあります。
エラーを画面に出力しない
$mail には、Qdmailのインスタンス(オブジェクト)が入っているものとします。
  $mail -> errorDisplay( false );
エラー内容を把握する
メール送信に失敗した場合、easyText() や send()メソッドの返り値が false となります。
また、そのエラーの内容は、次のメソッドで取得できます。
  $mail -> errorStatment();
このメソッドは、以下の返り値をとります。
array()(空の配列)エラーがない時。or エラーを画面出力する設定になっているとき。
エラー内容が代入された配列エラーを画面に出力しない設定の時 & エラーが発生したとき
したがって、このような使い方もできます。
(細かい設定は省略します。)

例)
 $mail->errorDisplay(false);
 if(!$mail ->easyText('to@example.com','●●さん','タイトル','メッセージ','from@example.com')){
    // エラー処理
    $message = print_r($mail->errorStatment(false),true);
    @mail('admin@example.com','ErrorQdmail',$message,'From: from@example.com');
 };
ここでは、送信エラーがあった時に、PHP標準のmail関数を使って、エラーメールを管理者に送付するようにしています。Qdmailエラー時に、Qdmailでメール送信するのもナンですし、mail関数そのものは日本語を通さないので、このような例にしてみました。
エラー処理の内容は、ユーザーの事情に合わせて変更してみてください。
なお、エラー時にログを出力したい、というのであれば、Qdmailのエラーログ処理もご覧下さい。

PHP本体が発するエラー

PHP本体が発するエラーについては、Qdmailは何らの処理を行いません*1
PHPのエラー処理-PHP SPOTエラー処理-PHPマニュアルなどを参考にご自分でエラー処理をお願いいたします。

*1 : PHP5専用になった時には、try-catchを実装したいと思いますが。。。