return値の設定

2008/08/13 未分類 spok
Qdmail 1.0.3b以降では、任意のメソッドの値を返り値とする配列を、qd_send_mailの返り値にすることができます。

以下の例は、事前に文字コードをutf-8,base64に変更し、ログ機能をONにした上で、メールを送信し、送信した後に、sizeBody(),smtpData() メソッドを実行して、その返り値を、$option と同じ形で返します。
 $return = array(
    'sizeBody'=>null,
    'smtpData'=>null
 );
 $before = array(
     'charset'=>array('utf-8','base64'),
     'logLevel'=>1
 );
 $type = 'text';
 $option = array( 'type'=> $text , 'option'=>$before , 'return' =>$return );

 $ret = qd_send_mail(
        $option ,
        'address@example.com',
        'タイトル',
        '本文',
        'from@example.com'
  );
$ret は、第1引数の$opiton のキーreturn が設定されていない場合は、メール送信ができたらtrue,エラーだった場合はfalseを返します。
しかし、returnキーが設定されている場合は、メールを送信した後に、returnキーの奥のさらに配列のキー名のメソッドが実行され、その返り値が、配列として返されます。

上記のサンプルコードでは、$ret には以下のような配列が返されます。
Array
(
    [type] => text
    [option] => Array
        (
            [charset] => Array
                (
                    [0] => utf-8
                    [1] => base64
                )

            [logLevel] => 1
        )
    [return] => Array
        (
            [sizeBody] => 12 //例示
            [smtpData] => '(ヘッダー+本文データ)'
            [qd_send_mail] => true
        )
)
キーqd_send_mailには、問題がなかった場合はtrue,エラーがあった場合には、falseが返されます。

メールを送信せずに返り値だけ欲しい場合

 $before = array(
     'charset'=>array('utf-8','base64'),
     'logLevel'=>1,
     'renderMode'=>true
 );