Optionの指定方法

2008/08/02 未分類 spok
qd_send_mailでは、第1引数に $option を指定することで、様々な設定をすることができます。

通常のテキストメールを送るだけであれば、次のように、第1引数には'text'を指定するだけでした。
 qd_send_mail( 'text' , $to , $subject , $body , $from );
ここを配列にして、キー(添え字)を、'option' とし、さらにその option を配列で指定します。
例えば、本文文字コードセットをデフォルトのiso-2022-jpではなく、utf-8にして、さらに本文エンコードを base64 にすることを考えてみましょう。

$to,$subject,$body,$fromの設定は省略。それはqd_send_mailでのテキストメールの送り方をみてください。
$op = array( 'charset'=>array('utf-8','base64'));          // 文字コード設定
$option = array( 'type'=>'text' , 'option'=>$op); // テキストタイプ設定、オプションセット
qd_send_mail( $option , $to ,$subject , $body , $from );
このような指定をすることで、Qdmailの内部的には、
$op = array( 'charset'=>array('utf-8','base64'));
のオプションが解釈され、内部的に以下のようなコードが走ります。$mailには、Qdmailインスタンスが入っています。
$mail -> charset( array('utf-8','base64') )
これは、sendモード、OOPでの文字コードセットの変更の指定方法と全く同じです。

つまり、qd_send_mailでは、option に、配列として
array( 'メソッド名' => 'パラメータ' )
を指定することで、すべてのオプションを指定することができるのです。

第1引数を配列で指定するときには、配列地獄形式で表すと以下のようになります。
 array(
    'type'=>'text' ,    //メールタイプは必須。
    'option'=> array(
              'メソッド名1'=>'パラメータ1',
              'メソッド名2'=>'パラメータ2',
              'メソッド名3'=>'パラメータ3',
                    ・・・・・・・・・ 
    ),
 );

簡単な差し込み例

2008/08/02 未分類 spok
%name%の部分が、表示名に、%mail%の部分がメールアドレスに置き換わって送信されます。
require_once('qdmail.php');

$to = array('test@example.com','日本語表示名');

$subject="こんにちは、%name%さん。";

$body="%name%さんの登録内容をお送りします。

名前:%name%
メールアドレス:%mail%

このように、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 );

データベースから一気に差し込み

2008/08/02 未分類 spok

データベース連動

データベースから、データをフェッチ(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にする箇所です。

フィールド名と連動

%でデータベースのフィールド名を囲めば(%フィールド名%)、自動的にリプレースされるわけですが、どのフィールドのデータをメール宛先の送信者表示名にするか、どれが送信先のメールアドレスなのかを指定する必要があります。
デフォルトでは、次のようになっています。
フィールド名意味
mail送信先メールアドレス
name送信先表示名
しかし、あなたのデータベースでは、必ずしも、上記のフィールド名になっておらず、メールアドレスが、mail_address だったり 表示名が pen_name だったりするかも知れません。
その時、SimpleReplaceは、正常に動作しますが、Qdmailは肝心の送信先アドレスを見失ってしまいます。
ですので、mail,nameではなない場合は、次の指定を加えてください。
$op = array( 'simpleReplace'=>true,
             'addressField'=>array('mail_address','pen_name')
 );

$option = array('type'=>'text','option'=>$op);

テンプレート機能

2008/08/02 未分類 spok

SimpleReplace

Qdmailでは、SimpleReplaceという機能があります。

これは、件名や本文に「%name%」という置き換え記号を置いておくと、自動的に、送信先名の名前に置き換わるというものです。
この機能を利用すると、データベースから取ってきたデータを、送る相手によってカスタマイズしながら送信することができます。

例えばQdmaiでは、以下のようなメールの一斉送信が簡単にできます。

こんにちは●●さん。シンプルリプレースのテストです。
きょうは、お得なお知らせです。
●●さんは、前回、▲▲を■■■にお求めになりましたが、今回は、さらにパワーアップした商品のご紹介です。

配信解除はこちら
http://example.com/store_mail/cancel?id=●●●&hash=××××