8ビットの文字をメールで送信するとき

あまり文字のことで悩みたくないが、中国語のメール送信プログラムを書いたときのメモ。

タイトル等ヘッダに関する部分は英語記述で対応することにした。マルチバイトな文字が関係しなければ悩む必要なし。

中国語だと本文は当然漢字になる。日本語みたいにISO-2022-JPに変換しちゃえばいい、という具合でもなさそう。結局こんな具合で送信することにした。

  • 本文($body)はUTF-8とする
  • このままだと8bitでメールを送る可能性があるのでimap_8bit関数で変換した。
    $body=imap_8bit($body);
    ただしimap_8bit関数はIMAPモジュールが必要になる(PHP4以上で使える)。
    PHP5.3以上ならquoted_printable_decode関数のほうがいいかも。

メールヘッダも小細工が必要で、以下のヘッダを付与した。

  • MIME-Version: 1.0
  • Content-Type: text/plain; charset=utf-8
  • Content-Transfer-Encoding: quoted-printable

MIME-Versionは必要ないかもしれない。だけど参考にしたメールソフトではついていたので、とりあえずつけておいた。

コメントを残す


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net