Search
Calendar
 123456
78910111213
14151617181920
21222324252627
28      
<< February 2010 >>
Sponsored links
テツ
お知らせ
MacIEでは、画像をクリックした際の拡大表示が正しく表示されないっぽいです。ご了承下さい・・・。
成分解析
前田商会の成分解析占い
 
カウンタ
New Entries
Recent Comment
Recent Trackback
Category
Archives
Profile
Links
mobile
qrcode
RSSATOM 無料ブログ作成サービス JUGEM
スポンサーサイト
この広告は60日以上更新がないブログに表示されております。
新しい記事を書くことで広告を消すことができます。
posted by: スポンサードリンク | - | | - | - |
PHP::携帯絵文字メール送信(3キャリア)
* ケータイに絵文字入りメールを送信するには(iモード編)
* ケータイに絵文字入りメールを送信するには(au編)
* ケータイに絵文字入りメールを送信するには(SoftBank編)
* Windowsから3キャリアの絵文字を簡単に入力するソフト

サンプルコード(iモード用)

// 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でエンコードすることがポイントのようです。
こうしておけば、絵文字や半角カナも問題なく送信されるようです。



サンプルコード(au用)

// EZWebに絵文字入りメールを送るサンプル

$to = '[auのアドレス]@ezweb.ne.jp';
$from = 'example@example.jp';

$emoji_ez = makeEzEmoji('EC94'); // EZマーク
$emoji_exclamation = makeEzEmoji('EB5A'); // !
$emoji_mail = makeEzEmoji('EBFA'); // メール
$emoji_smile = makeEzEmoji('EBD4'); // スマイル

$subject = $emoji_ez . '絵文字' . '入り題名デス' . $emoji_exclamation;
$body = '絵文字入りの' . $emoji_mail . '本文デス' . $emoji_smile . '。';

// 文字コードを変更
$subject = mb_convert_encoding($subject, "JIS", "SJIS");
$body = mb_convert_encoding($body, "JIS", "SJIS");

// MIMEエンコーディングを行う
$subject = "=?ISO-2022-JP?B?" . base64_encode($subject) . "?=";

// ヘッダを作成
$headers = "From: " . $from . "¥n";
$headers .= "MIME-Version: 1.0¥n";
$headers .= "Content-Type: text/plain; charset=ISO-2022-JP¥n";
$headers .= "Content-Transfer-Encoding: 7bit";

// メールを送信
$res = mail($to, $subject, $body, $headers);

// 結果を取得
if ($res) {
echo "OK¥n";
} else {
echo "NG¥n";
}

/**
* EZWeb絵文字変換関数
* @param string $code 絵文字を表すコードの文字列
* @return 絵文字
*/
function makeEzEmoji($code) {
$emoji = '';
for ($i = 0; $i < strlen($code); $i += 2) {
$emoji .= sprintf('%c', hexdec(substr($code, $i, 2)));
}

return $emoji;
}
?>

※ソースコードはSJISで記述しています

プログラムの最初の方で定義している絵文字の4桁のコードは、こちらに表があります。
→ KDDI au 技術情報 EZweb絵文字一覧【タイプD】 [kddi.com] ※PDFです

この表の中の一番右にある「Eメール送出用JISコードに対応したShift-JISコード」というのを使用しています。
なお、先日ご紹介した「OshimaExe」というソフトでも入力可能です。

上記のように設定した絵文字を、他の文言ごとJISコードに変換し、ISO-2022-JPのヘッダをつけて送信しています。



サンプルコード(ソフトバンク用)

// ソフトバンクに絵文字入りメールを送るサンプル

$to = '[ソフトバンクのアドレス]@softbank.ne.jp';
$from = 'example@example.jp';

$subject = '$Pe絵文字入り題名デス$OW';
$body = '絵文字入りの$E#本文デス。$E%';

// 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で記述しています
※Blog上からは絵文字が正常に表示できません、絵文字部分は入力し直してください。

ソフトバンクの絵文字メール送信は割とシンプルで、Webと同じように絵文字コードをコピペして、本文やタイトルに貼るだけです。
あとはドコモと同様に、Shift-JISのヘッダをつけてメールを送信してあげればOKです。

ただし、メールが表示できるかどうかは、端末のメーラーに依存してしまうようなので、古い機種や特殊な機種に関しては絵文字の表示は保証できないようです。
posted by: テツ | メモ | 09:50 | comments(1) | - |

  テツ さん、

   はじめまして。 インド人サラバナと申します。現在東京でSE仕事しています。 本ページ絵文字ついてメール送るはうまくできました。一週間ウェブ上でいろいろ探して、やっとサンプルコード「本ウェブサイト」を見つけました。 私の開発言語はJAVAです。PHPの機能はJAVAに作って結果できました。

どうもう ありがとうございました。

以上 よろしくお願いします。
| サラバナ | 2008/05/13 8:02 PM |