写真画像などを添付して送信する仕組み。

$to=$data['shop_email'];
$subject="サブジェクト";
$from="From:".mb_encode_mimeheader("名前")."<".メールアドレス.">";
$plain_message=$this->make_text_profile($data);

//必要に応じて適宜文字コードを設定。
mb_language('Ja');
mb_internal_encoding('UTF-8');
			
$body = "";
// 添付ファイルがないとき
if(empty($_FILES['file'])) {
	$headers = $from;
	$body .= "\n{$plain_message}\n";
// 添付ファイルがあるとき
} else {
	$attach_mime_type=$_FILES['file']['type'];
	$filebase=$_FILES['file']['name'];
	$img_data = chunk_split(base64_encode($_FILES['file']['tmp_name']));
	$boundary = '__BOUNDARY__'.md5(rand());
				
	$headers = "Content-Type: multipart/mixed;boundary=\"{$boundary}\"\n";
	$headers .= $from;
				
	$body = "--{$boundary}\n";
	$body .= "Content-Type: text/plain; charset=\"ISO-2022-JP\"\n";
	$body .= "\n{$plain_message}\n";
				
	$body .= "--{$boundary}\n";
	$body .= "Content-Type: {$attach_mime_type}; name=\"{$filebase}\"\n";
	$body .= "Content-Disposition: attachment; filename=\"{$filebase}\"\n";
	$body .= "Content-Transfer-Encoding: base64\n";
	$body .= "\n";
	$body .= $img_data."\n";
				
	$body .= "--{$boundary}--";
}
			
// カレントの言語を日本語に設定する
mb_language("ja");

// 内部文字エンコードを設定する
mb_internal_encoding("UTF-8");
			
// メール送信
mb_send_mail($to, $subject, $body, $headers);