Qdmailは、ソースコードや渡された文字コードを自動的に判別し、もっとも文字化けの少ない方法で送るように試みます。
しかし、インターネットメールの環境は様々であり、自動判別は完璧なものではありません。
もっとも文字化けが出る可能性が低いのは、当方の開発環境と同じ以下の環境です。
スクリプトの文字コード:UTF-8で統一。
スクリプトの改行コード:CRLF
デフォルトでは、Qdmailは、このUTF-8を日本語のメールに適したiso-2022-jpに変換して送ります。
もちろん、EUC-JP,SHIFT-JISでも、改行コードLFのみでも大丈夫なようには設計してあります。
インクルードできるパスの通ったところに、qdmail.phpを配置してください。
わからなければ、呼び出すファイルと同じディレクトリ(フォルダ)で構わないです。
require_once('qdmail.php');
$mail = & new Qdmail();
$mail -> easyText(
'mailto@example.com' ,
'宛先(日本語OK)' ,
'タイトル(日本語OK)' ,
'本文(日本語OK)',
'from@example.com' ,
'配信元(日本語OK)'
);
(PHP5の時は、new 前の "&" は必要ありません。)
オブジェクト指向(OOP)的な書き方がわからない方は、-> や new の意味がわからないかも知れませんが、おまじないと思って、上記をコピー&ペーストしてみてください。
「$mail -> 関数名()」で、ひとつの関数と思って構いません。
なお、「$mail -> & new Qdmail();」は、最初に一回だけやっておけば、それ以降は必要ありません。
「$mail」は、自分の好きな変数名にして構いません。以後は、その「newした変数名->関数名」に置き換えて下さい。
添付ファイルの置き場所:まずは、呼びだしもとのファイルと同じ場所において試してみて下さい。このファイルの置き場所は変更することもできます。
$mail = & new Qdmail();();
$mail -> easyText(
'mailto@example.com' ,
'宛先(日本語OK)' ,
'タイトル(日本語OK)' ,
'本文(日本語OK)',
'from@example.com' ,
'配信元(日本語OK)' ,
'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(
'mailto@example.com' ,
'宛先(日本語OK)' ,
'タイトル(日本語OK)' ,
'本文(日本語OK)',
'from@example.com' ,
'配信元(日本語OK)' ,
$param
);
バージョン0.7.8aより指定方法が変わる予定ですので、注意してください。
$to = array('mailto1@example.com' , 'mailto2@example.com' );
$mail -> easyText(
$to ,
'address' ,
'タイトル(日本語OK)' ,
'本文(日本語OK)',
'from@example.com' ,
'配信元(日本語OK)'
);
$mail -> easyText の第2引数が null になっていることに注意しましょう。バージョン0.7.8aより指定方法が変わる予定ですので、注意してください。
この例では、2人に送っていますが、何人でも追加できます。
toヘッダに複数指定した場合は、その指定された人全員が、全員のメールアドレスを知ることになりますので注意しましょう。
それがまずい場合(ネットサービスでは、ほとんどがそうですよね)は、後で述べるBCCを使いましょう。
$to = array('mailto1@example.com' , 'mailto2@example.com' );
$toname = array('表示名1(日本語OK)','表示名2(日本語OK)');
$mail -> easyText(
$to ,
$toname ,
'タイトル(日本語OK)' ,
'本文(日本語OK)',
'from@example.com' ,
'配信元(日本語OK)'
);
メールアドレスと表示名の配列の対応関係が崩れないように注意しましょう。
$to[] = array('mailto1@example.com' , '表示名1(日本語OK)' );
$to[] = array('mailto2@example.com' , '表示名2(日本語OK)' );
$mail -> easyText(
$to ,
null ,
'タイトル(日本語OK)' ,
'本文(日本語OK)',
'from@example.com' ,
'配信元(日本語OK)'
);
必ず、メールアドレスのキーがゼロ、表示名のキーが1になるようにします。
$mail -> easyText の第2引数が null になっていることに注意しましょう。
表示名も指定 パート2 の応用です。
$address['to'][] = array('mailto1@example.com' , '表示名1(日本語OK)' );
$address['to'][] = array('mailto2@example.com' , '表示名2(日本語OK)' );
$address['cc'][] = array('mailto3@example.com' , '表示名3(日本語OK)' );
$address['cc'][] = array('mailto4@example.com' , '表示名4(日本語OK)' );
$address['bcc'][] = array('mailto5@example.com' );
$address['bcc'][] = array('mailto6@example.com' );
$mail -> easyText(
$address ,
null ,
'タイトル(日本語OK)' ,
'本文(日本語OK)',
'from@example.com' ,
'配信元(日本語OK)'
);
※bccでは、表示名の指定は意味がありませんので、指定できません。
$address は、3次元配列になります。混乱しないように注意しましょう。
toやccは大文字でも小文字でも問題ありません。
ccやbccは省略可能ですが、toには最低1つの宛先が必要になりますので、注意して下さい。
$mail -> easyText の第2引数が null になっていることに注意しましょう。
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)' ,
'本文(日本語OK)',
$var
);
$address['to'][] = array('mailto1@example.com' , '表示名1(日本語OK)' );
$address['to'][] = array('mailto2@example.com' , '表示名2(日本語OK)' );
$address['cc'][] = array('mailto3@example.com' , '表示名3(日本語OK)' );
$address['cc'][] = array('mailto4@example.com' , '表示名4(日本語OK)' );
$address['bcc'][] = array('mailto5@example.com' );
$address['bcc'][] = array('mailto6@example.com' );
$var['from'] = array('address7@example.com' , '表示名7(日本語OK)');
$var['reply-to'] = array('address8@example.com' , '表示名8(日本語OK)');
$attach[] = array( 'test.jpg' , '添付ファイル名(日本語OK省略も可能).jpg' );
$attach[] = array( 'test2.jpg' , '添付ファイル名2(日本語OK省略も可能).jpg' );
$mail -> easyText(
$address ,
null ,
'タイトル(日本語OK)' ,
'本文(日本語OK)',
$var,
null ,
$attach
);
総復習です。
$mail -> easyText の引数の順番と null にしなければならない部分があるので、注意しましょう。