データベースから一気に差し込み
2008/08/02
データベース連動
データベースから、データをフェッチ(Fetch)した場合、多くの場合、次のようなデータ構造になっているはずです。(もちろん、フィールド名やデータは例です。)
$data = array(
array('name'=>'スポック','id'=>1,'mail'=>'spok@example.com',
'age'=>'24','address1'=>'東京都品川区','address2'=>'三田0-0-0',
'tel'=>'03-0000-0000',),
array('name'=>'カーク','id'=>2,'mail'=>'kirk@example.com',
'age'=>'20','address1'=>'大阪府大阪市','address2'=>'難波0-0-0',
'tel'=>'06-0000-0000',),
array('name'=>'ウフーラ','id'=>3,'mail'=>'urhoora@example.com',
'age'=>'22','address1'=>'愛知県名古屋市','address2'=>'中央区近衛0-0-0',
'tel'=>'045-0000-0000',),
array('name'=>'マッコイ','id'=>4,'mail'=>'maccoy@example.com',
'age'=>'50','address1'=>'鹿児島県鹿児島市','address2'=>'中区聖0-0-0',
'tel'=>'092-0000-0000',),
);
このデータを一気に、Qdmailに差し込むことで、上記のデータの場合、4人にそれぞれ個人別にカスタマイズしたメールを一度に送信することができます。通常、$to として、宛先を指定する引数に、$dataをします。
そして、件名や本文で、置き換えたい項目を%記号で囲みます。
サンプルをみるのが早いでしょう。上記の$dataが入っているものとします。
上記の$dataのメールアドレス部分を自分が管理している別のメールアドレスに入れて試してください。
require_once('qdmail.php');
$subject="こんにちは、%name%さん。";
$body="%name%さんの登録内容をお送りします。
名前:%name%
id: %id%
メールアドレス:%mail%
年齢:%age%
住所:%address1% %address2%
TEL: %tel%
専用URL:http://example.com/login/?id=%id%
このように、qd_send_mailでは、簡単にインサートメールを送信することができます。";
$from = array( 'from@example.com' , '送り元日本語名' );
$option = array('type'=>'text','option'=>array('simpleReplace'=>true));
$flag = qd_send_mail( $option , $data , $subject , $body , $from );
この
$option = array('type'=>'text','option'=>array('simpleReplace'=>true));
の部分が、SimpleReplace機能をONにする箇所です。フィールド名と連動
%でデータベースのフィールド名を囲めば(%フィールド名%)、自動的にリプレースされるわけですが、どのフィールドのデータをメール宛先の送信者表示名にするか、どれが送信先のメールアドレスなのかを指定する必要があります。デフォルトでは、次のようになっています。
| フィールド名 | 意味 |
| 送信先メールアドレス | |
| name | 送信先表示名 |
その時、SimpleReplaceは、正常に動作しますが、Qdmailは肝心の送信先アドレスを見失ってしまいます。
ですので、mail,nameではなない場合は、次の指定を加えてください。
$op = array( 'simpleReplace'=>true,
'addressField'=>array('mail_address','pen_name')
);
$option = array('type'=>'text','option'=>$op);