ケータイに絵文字入りメールを送信するには(iモード編)
Tweet
プログラム側からケータイに絵文字入りのメールを送りたいケースはよくありますが、通常の方法では文字化けしてしまい送信することができません。
キャリア毎に絵文字の扱いが違うため、それぞれ違うプログラムで対処する必要があります。
今回はiモード用のサンプルコードをご紹介します。
サンプルコード(iモード用)
<?php
// iモードに絵文字入りメールを送るサンプル
$to = '[iモードのアドレス]@docomo.ne.jp';
$from = 'example@example.jp';
$subject = '[iの絵文字]絵文字入り[キラキラの絵文字]題名デス[ハートの絵文字]';
$body = '[iの絵文字]モードの絵文字入り[キラキラの絵文字]の[メールの絵文字]本文デス。';
// MIMEエンコーディングを行う
$subject = "=?shift_jis?B?" . base64_encode($subject) . "?=";
$body = base64_encode($body);
// ヘッダを作成
$headers = "From: " . $from . "\\n";
$headers .= "MIME-Version: 1.0\\n";
$headers .= "Content-Type: text/plain; charset=Shift-JIS\\n";
$headers .= "Content-Transfer-Encoding: base64";
// メールを送信
$res = mail($to, $subject, $body, $headers);
// 結果を取得
if ($res) {
echo "OK\\n";
} else {
echo "NG\\n";
}
?>
※ソースコードはSJISで記述しています
絵文字はPC上からは表示できないため、「[ハートの絵文字]」のように表現してあります。
実際には「i絵文字」などのツールを使って、SJIS形式の絵文字を直接入力してください。
Content-TypeをShift-JISとすることや、Subjectをshift_jisでエンコードすることがポイントのようです。
こうしておけば、絵文字や半角カナも問題なく送信されるようです。
関連:
10月 13th, 2009 at 19:01:23
ご指摘を頂いていました。
合わせてご確認ください。
http://www.plusmb.jp/2009/05/29/3583.html