fsockopenでマルチバイトなメール送信
2008/07/08 | PHPの基本
基本的にメール送信はmb_send_mailを使っているが、いろんな事情でfsockopenによるメール送信を実現しなければならないときがある。それでも、マルチバイトなメール送信でない場合は、何も気にしなくてもスムーズにいくが、マルチバイトなメール送信となると、文字化け問題が常につきまとう。
今回fsockopenでマルチバイトなメール送信プログラムを書いたときに、文字化けせずに送信できたので、その例をメモしておく。
■タイトル
$subj=mb_convert_encoding($subj,’JIS’,’(元のエンコーディング)’);
$subj=mb_encode_mimeheader($subj,’JIS’,’B’);
■本文
$body=mb_convert_encoding($body,’JIS’,’(元のエンコーディング)’);
よく調べてないけれど、タイトルはいったんJISに変換してからmb_encode_mimeheader。本文はJISに変換するだけでいい。
結果オーライということで。