textメール
2008/07/27
qd_send_mailでテキストメール
オブジェクト指向がわからない方でも、mb_send_mailライクに日本語を送信できます。また、オブジェクト指向がわかっている方でも、より簡単にコードを書くことができます。関数型であるのに、オプションでSMTP送信ができるのも、qd_send_mailの特徴です。
基本形
qd_send_mail( 'text', 宛先, 件名, 本文, From情報(&追加ヘッダー), 添付ファイル指定 );
サンプルコード
単純なテキストメール
標準型
メールアドレス関係で名前表示をする場合は、配列で指定します。原則として、配列添え字0がメールアドレス、配列添え字1が表示名となります。
(これは変更することもできます。)
$to = array( 'address@example.com' , '宛先日本語名' ); $from = array( 'from@example.com' , '送り元日本語名' ); $subject = 'メールのテスト(テキスト)'; $body = "ここに本文を書きます。"; qd_send_mail( 'text' , $to , $subject , $body , $from);
宛先日本語名などが必要ない場合
メールアドレス関係で名前表示が必要ない場合は、配列にする必要はありません。$to = 'address@example.com' ; $from = 'from@example.com' ; (以下、省略)
添付ファイルを送る場合
$to = array( 'address@example.com' , '宛先日本語名' ); $from = array( 'from@example.com' , '送り元日本語名' ); $subject = 'メールのテスト(テキスト)'; $body = "ここに本文を書きます。"; $attach = array( 'test.jpg' , '添付フィル.jpg'); qd_send_mail( 'text' , $to , $subject , $body , $from , $attach);添付ファイルのファイル名は、相対指定です。
0系の指定の仕方も参考にしてください。
添付ファイルで、日本語ファイル名は必要ない場合
$attach = array( 'test.jpg'); (他省略)
添付ファイルで、MIMEタイプを明示的に指定する場合
QdmailではContent-typeヘッダにつけるMIMEタイプは、ファイル名の拡張子から自動判別します。しかし、拡張子のないファイルや、明示的にMIMEタイプを変更したい場合は下記のようにしてください。
$attach = array( 'test.jpg' , '添付フィル.jpg' , 'test/mime' ); (他省略)これで
--__Next-1-......__ Content-Type: test/mime; name="=?iso-2022-jp?B?GyRCRTpJVSVVJSMlaxsoQi5qcGc=?="というヘッダになります。
添付ファイルを複数指定する場合
複数の添付ファイルを指定したいときはネストしてください。$attach1 = array( 'test.jpg' , '添付1' ); $attach2 = array( 'test2.jpg' , '添付2' ); $attach = array($attach1,$attach2); (他省略) qd_send_mail( 'text' , $to , $subject , $body , $from , $attach);
他の任意のヘッダーを追加したい場合
任意のヘッダーは、配列で指定します。From以外のヘッダーを指定する時は、必ずFromも明示的に設定してください。Fromは、必須のヘッダーです。
必ずフロムヘッダーが入る関係上、複数のヘッダーを指定することになるので、配列はネストすることになります。
配列のキー(添え字)が、ヘッダー名となり、配列の値が、ヘッダーの値となります。
Qdmailがヘッダー名に「:」(コロン)を自動的につけますので、ここでのキーは「:」は抜いた形で指定してください。
$add_header = array( 'From' => array('from@example.com','FROM表示名'), 'header-name' => 'parameter', ); (他省略) qd_send_mail( 'text' , $to , $subject , $body , $add_header , $attach);(FROM表示名が必要なく、メールアドレスだけでいい場合は'From'=>'from@example.com'でも構いません。
他の任意のヘッダーを複数追加したい場合
複数の追加ヘッダーを設定したい場合です。$from = array( 'From' => array('from@example.com','FROM表示名' )); $add_header1 = array( 'header-name' => 'parameter' ); $add_header2 = array( 'header-name2' => 'parameter2' ); $add_header = array( $from , $add_header1 , $add_header2 ); (他省略) qd_send_mail( 'text' , $to , $subject , $body , $add_header , $attach);