[PHP-users 14209] PHP4.3.1のmail関数
Mera
php-users@php.gr.jp
2003年 3月 24日 (月) 06:51:40 JST
こんにちは、黒木です。
PHP4.3.1をしばらく使っていたのですが、以前に比べて不便になったなぁ
と思いつつ使用中です。 以前許されていた記述が許されなくなっていたり
と色々ありますが、それはおいておいて。
PHP4.3.1 では、mb_send_mail がどうも挙動が違うのか以前は普通に
メール送信出来ていたのですが送信すると文字化けが発生するようです。
過去ログを参照してみましたが見つからなかったので既出でしたら申し訳
ありません。
設定が以下の状態で、
mbstring.detect_order no value
mbstring.encoding_translation Off
mbstring.func_overload 0
mbstring.http_input pass
mbstring.http_output pass
mbstring.internal_encoding none
mbstring.language neutral
mbstring.script_encoding no value
mbstring.substitute_character no value
このようなサンプルを流しますと、
#!/usr/bin/php -q
<?php
$stOutputEnc = "EUC-JP" ;
$stInternalEnc = "EUC-JP" ;
ini_set( "mbstring.http_input", $stOutputEnc ) ;
ini_set( "mbstring.http_output", $stOutputEnc ) ;
ini_set( "mbstring.internal_encoding", $stInternalEnc ) ;
mb_send_mail( "sample@mail.address", "サンプル", "さんぷる" ) ;
?>
本文が何も入ってきません。直接 /var/spool/mail を覗いてみると
ものの見事に化けてしまっています。化けないのは Subject のみ
でした。
とりあえずは、mb_send_mail を使うのは止めて下記コードで回避
している状態です。
$stHeader =
"From: ".mb_encode_mimeheader( "sample@mail.address" )."\n".
"MIME-Version: 1.0"."\n".
"Content-Type: text/plain; charset=\"ISO-2022-JP\""."\n".
"Content-Transfer-Encoding: 7bit"."\n" ;
echo $stHeader."\n" ;
mail( mb_encode_mimeheader( "sample@mail.address" ), mb_encode_mimeheader( "サンプル" ), mb_convert_encoding( "さんぷる", "J
IS" ), $stHeader ) ; ;
とりあえず、報告まで。
--
Junichi Kuroki
PHP-users メーリングリストの案内