2013-08-21

mb_send_mail() するなら mb_convert_encoding() は不要

おれも勘違いしていたが、mb_send_mail()を使ってメールを送るとき、mb_convert_encoding()使って、ISO-2022-JPへ変換しなくていい。

具体的には、たったこれだけ。

<?php
//  日本語だよって宣言して
mb_language('ja');

//  UTF-8で組んでるなら、文字エンコードをUTF-8に合わせて
mb_internal_encoding("UTF-8");

//  mb_send_mail()するだけ
mb_send_mail("dare@doko.koko", "メールの送信テスト", "これは、メールの送信テストです。");

これだけで、
件名は、mb_encode_mimeheader(mb_convert_encoding("件名", "ISO-2022-JP", "UTF-8"), "ISO-2022-JP") してくれるし
本文は、mb_convert_encoding("本文", "ISO-2022-JP", "UTF-8") してくれる。

ただ、Fromに日本語使いたいときだけは、自前で

$from = mb_encode_mimeheader(mb_convert_encoding("おれから", "ISO-2022-JP", "UTF-8"), "ISO-2022-JP")."<ore@doko.soko>";

ってやってから

mb_send_mail("dare@doko.koko", "メールの送信テスト", "これは、メールの送信テストです。", "From:".$from);

って送ってあげる。

0 件のコメント:

コメントを投稿

結局は可愛い我が子

以前の会社の話。 俺がいたころ、「当時の社長」の息子が転職してきた。 「あー、結局は同族会社か」 と思ったし、まあ、ほかのヤツもそう思ったよね。 その時は否定した「当時の社長」。 でも、なーんか含みを持たせた逃げの言い訳してたなー。 その器があればとか、 周りが認めてくれればとか...