管理者に常時BCC

2008/06/30 未分類 spok
Qdmailでは、管理者に対し常にBCCをつける機能があります。
投稿フォームなどで、メール送信を監視したい場合などに、ログ機能などと合わせてご活用ください。

$mailにはQdmailのインスタンス(オブジェクト)が入っているものとします。
常にadmin@example.comにBccする。
  $mail -> allwaysBcc( 'admin@example.com' );
常時Bccモードをオフにする。
  $mail -> allwaysBcc( null );

常時Bccモードに設定されたメールアドレスを取得する。
  $mail -> allwaysBcc();

もっと楽?な使い方

しかし、上記の方法はユーザースクリプト中を想定したものであり、その場合は、$mail->bcc( 'admin@...')とした場合と、あまり変わりません。

Qdmail本体スクリプトのそのものを次のように変えておくというのが有効的な使い方かも知れません。
var $allways_bcc = null;
を探しだし、以下に変更。
var $allways_bcc = 'admin@example.com';

デバッグモード

2008/06/30 未分類 spok
Qdmailでは、Qdmailが作成したメールをデバッグモードでチェックすることができます。

$mailには、Qdmailのインスタンス(オブジェクト)が入っているものとします。
$mail -> debug( n );
n呼称メール送信メール表示(ヘッダー&本文)
0ノーマルモード(デフォルト)×
1ハーフデバッグモード
2フルデバッグモード×
何かQdmailがおかしいな、と思ったら、2のフルデバッグッモードにして、メールのヘッダーや本文を画面表示させてみてください。何らかのヒントがあるかも知れません。

qd_send_mail方式の場合、以下の方法でデバッグモードにできます。
qd_send_mail(  'メールタイプ' ,
               'address@example.com',
               '件名',
               '本文',
               'from@example.com',
         $attach, // 添付ファイルがない場合は、null
               2
            );
なお、Qdmailスクリプト中に、次のコードを埋め込むと、デバッグモードに合わせて、画面に表示したり、しなかったりすることができます。ユーザーが通常使うことはないとは思います。Qdmailを改造したい方はご活用ください。
$this -> debugEchoLine( var );
$this -> debugEchoLf( var );
var には、任意の変数やら定数やら入れることができます。複数のパラメータは、,カンマで区切って下さい。また、その変数が配列であれば、Qdmailは展開して表示します。
debugEchoLineは、改行なしで表示し、debugEchoLfは、変数の表示ごとに改行します。

ある行で、変数 $param と $var の中身を知りたければ、以下のようにします。
$this -> debugEchoLf( $param , $var  );
最初に記載したメールヘッダー、メール本文の表示も、このdebugEchoLfを用いて実装しております。

ログ機能

2008/06/29 未分類 spok
Qdmailでは送信ログを出力する機能があります。
ログ機能があれば、万が一SPAMメールの踏み台にされたとしても、早期に気づくことができます。
常時管理者にBccモードもよろしければご利用ください。

$mailには、Qdmailのインスタンス(オブジェクト)が入っているものとします。

ログレベルの設定

  $mail->logLevel( n );
n機能
0ログを出力しない(デフォルト)
1シンプルタイプ(送信した または失敗した メールアドレスのみ)
2ヘッダー情報も含むエラーログ
3メール本文も含めたエラーログ
*ログには、メールアドレス、本文等の情報を含みますので、ログファイルは一般の人がアクセスできないように管理する必要があります。個人情報等が流出しないよう、十分に気をつけて下さい。

ログファイルのパス、ファイル名の設定

  $mail->logPath( 'パス' ); // デフォルトは、'./'
  $mail->logFilename( 'ファイル名' );  // デフォルトは、'qbmail.log'
パスは相対パスでも、絶対パスでも構いません。Qdmail内部では、$fp = fopen( $path.$filename , 'a' );などという形で使用します。