HOME >  システム開発 > PHP 4 mb_send_mail無しで日本語メールを文字化けしないで送信

PHP 4 mb_send_mail無しで日本語メールを文字化けしないで送信


mb_send_mailを使用せずに、mail()関数で日本語のタイトル、本文を含むメール送信に

ついて、依頼があったので、その時のまとめ

懐かしいですね。もう十年前ぐらいの事でしょうか?PHP3からPHP4になるあたりでは

mbstringの日本語ライブラリが存在してなかった?

よくmail()関数を使っておまじない的なコード変換を入れて送信していました。

理由は不明・・・

そして


(PHP 4 >= 4.0.6, PHP 5)

mb_send_mail — エンコード変換を行ってメールを送信する


$body = ‘日本語本文’;
$from = ‘test@local.test’;


mb_language(‘Japanese’);

$subject = mb_convert_encoding(‘日本語タイトル’, ‘jis’, ‘utf8’);
$subject = base64_encode($subject);
$subject = ‘=?iso-2022-jp?b?’. $subject .’?=’;

$body = mb_convert_encoding($body, ‘jis’, ‘utf8’);

mail(‘test@local.test’, $subject, $body, ‘From:’. $from, ‘-f’. $from);


まあ雑だけど、作ってくれた社内の大吉君

mb_send_mailではなく、mail関数でメールが送信できる。

文字化けも発生しません。



よく見ると結局 mb_ マルチバイト関数使ってるやんけ!