[PHP-users 27647] Re: mb_send_mailでメール件名が文字化け

白石 譲司 jouji_s @ hotmail.com
2005年 11月 28日 (月) 11:55:40 JST


白石です。
現状の問題はmail関数を使用することで回避できました。
お騒がせしました。

■試したソース
<?php
$subject = "ああああああああええええええええ";
$subject = mb_convert_encoding($subject, "ISO-2022-JP", "EUC-JP");
$subject = mb_encode_mimeheader($subject, "ISO-2022-JP");

$body = "ああああああああええええええええ\nえええええええええええああああ";
$body = mb_convert_encoding($body, "ISO-2022-JP", "EUC-JP");

$headers  = "From: mail@test.com\n";
$headers .= "Content-Type: text/plain; charset=iso-2022-jp\n";
$headers .= "Content-Transfer-Encoding: 7bit\n";
$headers .= "X-Mailer: PHP/" . phpversion() . "\n";

mail("mail@test.com",  $subject, $body, $headers);

?>



>From: nomoto <shin-1 @ ca2.so-net.ne.jp>
>Reply-To: PHP-users ML <php-users @ php.gr.jp>
>To: PHP-users ML <php-users @ php.gr.jp>
>Subject: [PHP-users 27646] Re:mb_send_mailでメール件名が文字化け
>Date: Mon, 28 Nov 2005 11:26:45 +0900
>
>   nomotoです。
>
> >富沢と申します。 mb_send_mail絡みの投稿が結構続いているので・・・
> >
> >mb_send_mailを使わないという選択肢もあるかと思います。
>
>popenまでやらなくてもmail関数でいいかも知れませんね。
>
>わたしもmb_send_mailでマルチパートメールを送ろうとしたところ
>Content-Typeを指定しても強制的にtext/plainになってしまう事があって
>それ以来、自前でコード変換したあとmail関数で送るようにしてます。
>
>ヘッダーは mb_encode_mimeheader($subject, 'ISO-2022-JP'); する。
>本文は mb_convert_encoding($body, 'ISO-2022-JP', 'EUC'); する。
>添付ファイルは chunk_split(base64_encode($attach)); する。
>なんて事を自前でやるだけで、mb_send_mailに起因するバグは回避できる
>かと思います。
>_______________________________________________
>PHP-users mailing list  PHP-users @ php.gr.jp
>http://ns1.php.gr.jp/mailman/listinfo/php-users
>PHP初心者のためのページ - 質問する前にはこちらをお読みください
>http://www.php.gr.jp/php/novice.php3




PHP-users メーリングリストの案内