textメール

2008/07/27 未分類 spok

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