easy型の使い方(ver1系)

2008/08/02 未分類 spok
バージョン0系と1系では、easyモードの使い方が異なります。
バージョン0系については、バージョン0系のeasyモードの使い方をご参照ください。

easyモードの使い方(バージョン1系)

easyモードは、オブジェクト指向型でなるべく簡単に、様々なメールを送信できるよう工夫したライブラリです。

特徴

全くオブジェクト指向型を抜きにしての指定はできませんが、オブジェクト指向独特の「->」演算子をなるべく使わずに、通常の関数のように使うのが特徴です。
一方で、e-mailは設定項目が多いので、関数の引数の数は多くなり、場合によっては多次元配列を使わなくてはならない場合もあります。


目次

  • easyText_ver1
    簡単テキストメール - 文字化けなしのテキストメールの送付。添付ファイル日本語名も簡単。
  • easyHtml_ver1
    簡単HTMLメール - easyTextのHTMLメール版。自動代替テキスト生成機能付き。
  • easyReplace_ver1 そのうちマニュアル化します。。。。
    簡単テンプレート - 名前、メールアドレスの他、送付先に適合したメッセージやIDを送る機能
  • easyDeco_ver1
    簡単デコメール - 日本の携帯端末向けデコレーションメールの送付
  • easyDecoRep
    簡単デコメール+簡単テンプレート

テキストメール

2008/08/02 未分類 spok
ここはバージョン1系のeasyモードの解説です。バージョン0系については、バージョン0系のeasyモードの使い方をご参照ください。

単純なテキストメール

推奨文字コード

Qdmailは、ソースコードや渡された文字コードを自動的に判別し、もっとも文字化けの少ない方法で送るように試みます。
しかし、インターネットメールの環境は様々であり、自動判別は完璧なものではありません。
もっとも文字化けが出る可能性が低いのは、当方の開発環境と同じ以下の環境です。
スクリプトの文字コード:UTF-8で統一。
スクリプトの改行コード:CRLF
デフォルトでは、Qdmailは、このUTF-8を日本語のメールに適したiso-2022-jpに変換して送ります。
もちろん、EUC-JP,SHIFT-JISでも、改行コードLFのみでも大丈夫なようには設計してあります。

メールアドレスの指定の基本

メールアドレスだけの場合'address@example.com'
表示名もつける場合array( 'address@example.com' , '表示名' )
表示名をつけて、複数指定array(array( 'address@example.com' , '表示名' ),array( 'address@example.com' , '表示名' ).....)
メールアドレスだけの複数指定array(array( 'address@example.com'),array( 'address@example.com')...

一番簡単なメール

インクルードできるパスの通ったところに、qdmail.phpを配置してください。
わからなければ、呼び出すファイルと同じディレクトリ(フォルダ)で構わないです。
require_once('qdmail.php');
$mail = & new Qdmail();
$mail -> easyText(
      array( 'mailto@example.com' , '宛先(日本語OK)' ),
      'タイトル(日本語OK)' ,
      '本文(日本語OK)',
      array('from@example.com' , '配信元(日本語OK)')
 );
(PHP5の時は、new 前の "&" は必要ありません。)

オブジェクト指向(OOP)的な書き方がわからない方は、-> や new の意味がわからないかも知れませんが、おまじないと思って、上記をコピー&ペーストしてみてください。
「$mail -> 関数名()」で、ひとつの関数と思って構いません。
なお、「$mail -> & new Qdmail();*1」は、最初に一回だけやっておけば、それ以降は必要ありません。
「$mail」は、自分の好きな変数名にして構いません。以後は、その「newした変数名->関数名」に置き換えて下さい。

添付ファイルを添付する

添付ファイルの置き場所:まずは、呼びだしもとのファイルと同じ場所において試してみて下さい。このファイルの置き場所は変更することもできます。
$mail = & new Qdmail();();*1
$mail -> easyText(
       array( 'mailto@example.com' , '宛先(日本語OK)' ),
       'タイトル(日本語OK)' ,
       '本文(日本語OK)',
       array( 'from@example.com' , '配信元(日本語OK)' ), 
       array( 'test.jpg', '添付された時のファイル名(日本語OK).jpg')
 );
なお、添付ファイルの置き場所は、呼びだしもとファイルからの相対パスでも、絶対パスでも指定できます。
例えば、
相対パス「./images/test.jpg」「images/test.jpg」
絶対パス「/home/hogehoge/images/test.jpg」「c:\htdocs\hogehoge\test.jpg」
最初の文字が「/」「¥」「\」の場合は、絶対パスとして解釈しますので注意してください。

複数のファイルを添付する。

これ以降は、$mail = & new Qdmail(); は省略します。

$param[] = array( 'test.jpg' , '添付ファイル名(日本語OK省略も可能).jpg' );
$param[] = array( 'test2.jpg' , '添付ファイル名2(日本語OK省略も可能).jpg' );

$mail -> easyText(
       array( 'mailto@example.com' , '宛先(日本語OK)' ),
       'タイトル(日本語OK)' ,
       '本文(日本語OK)',
       array( 'from@example.com' , '配信元(日本語OK)' ), 
       $param
 );

複数の宛先に送付する

この例では、2人に送っていますが、何人でも追加できます。
toヘッダに複数指定した場合は、その指定された人全員が、全員のメールアドレスを知ることになりますので注意しましょう。
それがまずい場合(ネットサービスでは、ほとんどがそうですよね)は、後で述べるBCCを使いましょう。

複数の宛先に送付する

複数の宛先に送付する (表示名も指定)


$to[] = array('mailto1@example.com' , '表示名1(日本語OK)' );
$to[] = array('mailto2@example.com' , '表示名2(日本語OK)' );

$mail -> easyText(
        $to ,
       'タイトル(日本語OK)' ,
       '本文(日本語OK)',
       array('from@example.com' , '配信元(日本語OK)' ) 
 );
必ず、メールアドレスのキーがゼロ、表示名のキーが1になるようにします。

cc や bcc も追加する。


$address['to'][] = array('mailto1@example.com' , '表示名1(日本語OK)' );
$address['to'][] = array('mailto2@example.com' , '表示名2(日本語OK)' );

$other_heder['cc'][] = array('mailto3@example.com' , '表示名3(日本語OK)' );
$other_heder['cc'][] = array('mailto4@example.com' , '表示名4(日本語OK)' );

$other_heder['bcc'][] = array('mailto5@example.com' , '表示名5(日本語OK)' );
$other_heder['bcc'][] = array('mailto6@example.com' , '表示名6(日本語OK)' );

$other_heder['from'][] = array('from@example.com' , '配信元(日本語OK)' );

$mail -> easyText(
        $address ,
       'タイトル(日本語OK)' ,
       '本文(日本語OK)',
       $other_header
 );
toやccは大文字でも小文字でも問題ありません。
ccやbccは省略可能ですが、toには最低1つの宛先が必要になりますので、注意して下さい。
Fromを指定していた引数の部分が、other_headerに置き換わります。その代わりに、$other_headerの中に、fromを指定しておきます。Fromヘッダーは必須ヘッダーです。

reply-toを設定する

WEBサービスでは、Fromは配信専用にして、reply-toを設定したい場合もあるでしょう。

$var['from'] = array('mailto2@example.com' , '表示名2(日本語OK)');
$var['reply-to'] = array('mailto3@example.com' , '表示名3(日本語OK)');

$mail -> easyText(
       'address1@example.com' ,
       'タイトル(日本語OK)' ,
       '本文(日本語OK)',
       $var  
 );

*1 : PHP5の時は、new 前の "&" は必要ありません。

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 );