データベースから一気に差し込み
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);