はじめに
携帯らしいかわいいサイトを構築するのにかかせない絵文字ですが、最近は携帯向けメールマガジンなどのメールにも絵文字が含まれるようになってきています。
本稿では、絵文字を含んだメールを送信する場合のキャリアごとの仕様の違いと、送信方法を紹介します。
対象読者
- 絵文字を含んだメールの送信を検討している方
- CPANモジュールを使用したことのある方
必要な環境
Perl 5.8以上が動作する環境。
キャリアの仕様の違いと絵文字を埋め込む方法
絵文字を含むメールの送信は、基本的に絵文字のバイナリデータを本文に挿入することで可能となります。しかし、キャリアごとに絵文字の仕様が異なるため、その違いを吸収する必要があったり、そもそも絵文字に対応していない端末があるため、配信する端末を制限するなどの方法を検討しなければなりません。
そこで、絵文字を送信する上で各キャリアごとにどのようにすればよいのかをまとめてみました。まずは「文字コードの違い」から見ていきましょう。
1. 文字コードの違い
絵文字を含むメールの送信時に、まず気を付けなければならないものが「文字コード」です。以下にキャリアごとの対応文字コードをまとめてみました。
UTF-8 | Shift_JIS | ISO-2022-JP |
ドコモ | ||
○ | ○ | ○ |
EZweb | ||
× | ○ | ○ |
SoftBank | ||
○ | × | × |
対応していない文字コードでメールを送信すると、文字化けや、内容がまったく表示されなくなったりするので注意する必要があります。
また、上記の表以外にもいくつか注意点があります。
- ISO-2022-JPでは、半角カタカナの送信ができません。
- ドコモのPDC端末やSoftBankのC型端末では、UTF-8での送信ができないものがあります。
- SoftBank W型端末には、サブジェクトにUTF-8が使用できないものがあります。
2. 絵文字を埋め込む方法
以上の理由から、メール送信するための文字コードをキャリアごとに検討すると、ドコモとEZwebは「Shift_JIS」で、SoftBankは「UTF-8」で送信するとよいようです。
そして絵文字に関しては、ドコモとEZwebへShift_JISで送信する場合は、Shift_JISバイナリデータで埋め込み、SoftBankへUTF-8で送信する場合は、Unicodeのバイナリデータで埋め込めばよいということになります。
これらを踏まえて、次のサンプルプログラムを見ていきましょう。