SoftBankの絵文字が変換できません。機種はSB841SHです。
Subjectは絵文字変換されるのですが、
本文が「$Gi」のようにWEBコードの一部がが表示されます。
Webコードを本文に埋め込み、base64でエンコードしています。
ソースはShift_JISで作成しています。
機種に問題があるのか、実装に問題ががあるのか
わかる方がおりましたらご教示ください。
実装はこんな感じです。
$subject = '$Gj絵文字入り題名$Gi';
$body = '絵文字入りの$Gj本文$Gi';
// 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);
以下のようにエンコードをISO-2022-JPに変更してみてください。
// MIMEエンコーディング $body = base64_encode($body); $body = mb_convert_encoding($body,"ISO-2022-JP","Shift_JIS"); // ヘッダ $headers = "From: " . $from . "\n"; $headers .= "MIME-Version: 1.0\n"; $header .= "Content-Type: text/plain;charset=ISO-2022-JP\r\n"; $header .= "Content-Transfer-Encoding: base64";
回答ありがとうございます。
回答の通り実装してみたのですがやはり本文が正しく表示できませんでした。
Gj{Bi
と表示されていました。