各キャリア毎のmailto:〜まとめ

  • 携帯から閲覧し、リンク先を開くとメール作成画面を表示
  • 本文を予め入力させる
  • 本文は日本語、改行有り

以上を問題なく動作させるためのまとめ。
最新機種で確認していないので、あまり参考にしないでください。。。

コード

php文字コードShift_JISです。

<?php
/* --- メール本文の内容 ---

1行目
2行目

   ------------------------ */

$UA = $_SERVER["HTTP_USER_AGENT"];
//DoCoMo は、Shift_JISでURLエンコード
if(preg_match("/^DoCoMo\/[12]\.0/i", $UA)) {
//	echo "i-mode"; 
	echo "<a href=\"mailto:hoge@www.example.com?body=1%8Ds%96%DA%0D%0A2%8Ds%96%DA\" accesskey=\"1\">[メール作成]</a>";
} 
//J-PHONE Vodafone SoftBank PDCはShift_JISでURLエンコード
elseif(preg_match("/J-PHONE\/3.|J-PHONE\/2.|J-PHONE\/4./i", $UA)) {
//	echo "SoftBank PDC";
	echo "<a href=\"mailto:hoge@www.example.com?body=1%8Ds%96%DA%0D%0A2%8Ds%96%DA\" accesskey=\"1\">[メール作成]</a>";
}
//Vodafone SoftBank 3G はUTF-8でURLエンコード
elseif(preg_match("/^(J\-PHONE|Vodafone|SoftBank|MOT\-[CV])/i", $UA)) {
//	echo "SoftBank 3G";
	echo "<a href=\"mailto:hoge@www.example.com?body=1%E8%A1%8C%E7%9B%AE%0D%0A2%E8%A1%8C%E7%9B%AE\" accesskey=\"1\">[メール作成]</a>";
}
//au は、Shift_JISでURLエンコード
elseif(preg_match("/^KDDI\-/i", $agent) || preg_match("/UP\.Browser/i", $UA)) {
//	echo "ezweb";
	echo "<a href=\"mailto:hoge@www.example.com?body=1%8Ds%96%DA%0D%0A2%8Ds%96%DA\" accesskey=\"1\">[メール作成]</a>";
}
// それ以外はUTF-8でURLエンコード
else {
//	echo "それ以外";
	echo "<a href=\"mailto:hoge@www.example.com?body=1%E8%A1%8C%E7%9B%AE%0D%0A2%E8%A1%8C%E7%9B%AE\" accesskey=\"1\">[メール作成]</a>";
}
?>

参考にしたページ