最近iPhoneメールで絵文字に対応したというニュースがありました。
そこで、PHPで送信した絵文字メールをiPhoneで受信できるか挑戦してみました。
まず、絵文字をバイナリコードで記述してSJISで送信してみました。ke-tai.org様より参考にさせて頂きました。
ke-tai.org > Blog Archive > ケータイに絵文字入りメールを送信するには(SoftBank編)
まず、こちらで紹介されている方法を試してみました。
結果、SoftBankの携帯に絵文字を送信できるのは確認できましたが、iPhoneだと文字化けしてしまいました。
そこで、他のサイトを探していると、3G携帯や2G携帯でもうまくいく方法を紹介しているエントリがありました。
SoftBankで絵文字メールを送る方法 – maru.cc@はてな
これなら、iPhoneでも表示されるかもと試してみました。
方法はバイナリデータにpackしてUTF-8でメールを送る方法です。
== UTF-8 ==
//エンコード変換 $subject = mb_convert_encoding($subject, "UTF-8", "auto"); $body = mb_convert_encoding($body, "UTF-8", "auto"); //絵文字をつけています $subject = pack("H*", "EE9185") . $subject . pack("H*", "EE8CB7"); $body = pack("H*", "EE9185") . $body . pack("H*", "EE8CB7"); // MIMEエンコーディングを行う $subject = "=?UTF-8?B?" . base64_encode($subject) . "?="; $body = base64_encode($body); // ヘッダを作成 $headers = "From:{$from}\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/plain; charset=UTF-8\r\n"; $headers .= "Content-Transfer-Encoding: base64"; //メール送信 $res = mail($to, $subject, $body, $headers);
結果こちらの方法で絵文字メールをiPhoneに表示することが出来ました。
うまくいかない時は、iPhoneのオリジナル絵文字コードとかあるのかと思いましたが、そういう訳ではなくUTF-8で送ってあげれば他のソフトバンクと同じコードで表示できるというとこでした。
maru.cc様 ke-tai.org様 有益な情報ありがとうございます。