[PHP-users 13355] 4.2.3mail関数と4.3.0mail関数の違いについて
shima tetuo
php-users@php.gr.jp
Mon, 17 Feb 2003 22:17:48 +0900
tetuoです。
バージョンアップに伴うmail関数の挙動の違いについて困っています。
-EUC Encoding-------------------------------
<?PHP
mail('XXXX@XXXX.com', mb_encode_mimeheader('日本語'),
mb_convert_encoding('本文', 'JIS'));
?>
--------------------------------------------
このような簡単なソースでテストしています。
4.2.3の場合:
メールは正しく送信され、メール件名、本文は期待した通りに送信されます。
サーバー情報
FreeBSD
PHP Version 4.2.3
'./configure' '--enable-mbstring' '--enable-mbstr-enc-trans' '--enable-mbregex' '--with-pgsql=/usr/local/pgsql' '--with-mysql=/usr/local/mysql' '--with-gdbm' '--with-gd=/usr/local' '--enable-gd-native-ttf' '--enable-ftp' '--with-ming=../ming-0.2a' '--with-imap=../imap-2001a' '--with-pdflib=/usr/local' '--with-zlib=/usr' '--with-freetype-dir=/usr/local' '--with-ttf=/usr/local' '--with-jpeg-dir=/usr/local' '--with-png-dir=/usr/local' '--with-iconv=/usr/local' '--enable-sockets' '--with-openssl' '--enable-trans-sid' '--with-apxs=/usr/local/apache/bin/apxs' '--enable-versioning'
mbstring
┌────────────────┬────┐
│Multibyte (Japanese) Support │enabled │
├────────────────┼────┤
│http input encoding translation │enabled │
├────────────────┼────┤
│multibyte regex support │enabled │
└────────────────┴────┘
┌───────────────┬──────┬───────┐
│Directive │Local Value │Master Value │
├───────────────┼──────┼───────┤
│mbstring.detect_order │no value │no value │
├───────────────┼──────┼───────┤
│mbstring.func_overload │0 │0 │
├───────────────┼──────┼───────┤
│mbstring.http_input │no value │no value │
├───────────────┼──────┼───────┤
│mbstring.http_output │no value │no value │
├───────────────┼──────┼───────┤
│mbstring.internal_encoding │no value │no value │
├───────────────┼──────┼───────┤
│mbstring.substitute_character │no value │no value │
└───────────────┴──────┴───────┘
4.3.0の場合:
ここが問題なのですが、同じソースでmail関数を使用すると、メールの件名、メー
ル本文が文字化けを起こします。
-メールソース--------------
Subject: =?ISO-2022-JP?B?Pz8/Pz8/?=
Return-Path: XXXXXXX@XXXXX.XXXXXXXXXXXX.XXXX
X-OriginalArrivalTime: 13 Feb 2003 21:35:23.0781 (UTC) FILETIME=[D0EA4B50:01C2D3A7]
$(D*3*d*4"1
---------------------------
サーバー情報:
FreeBSD
PHP Version 4.3.0RC2
'./configure' '--enable-mbstring' '--enable-mbstr-enc-trans' '--enable-mbregex' '--with-mbstring=all' '--with-pgsql=/usr/local/pgsql' '--with-mysql=/usr/local/mysql' '--with-gdbm' '--with-gd=/usr/local' '--enable-gd-native-ttf' '--enable-ftp' '--with-ming=../ming-0.2a' '--with-imap=../imap-2002.RC10' '--with-zlib=/usr' '--with-freetype-dir=/usr/local' '--with-ttf=/usr/local' '--with-jpeg-dir=/usr/local' '--with-png-dir=/usr/local' '--with-iconv=/usr/local' '--enable-sockets' '--with-openssl=/usr' '--enable-trans-sid' '--with-apxs=/usr/local/apache/bin/apxs' '--enable-versioning'
mbstring
┌─────────────────┬─────┐
│Multibyte Support │enabled │
├─────────────────┼─────┤
│Japanese support │enabled │
├─────────────────┼─────┤
│Multibyte (japanese) regex support│enabled │
└─────────────────┴─────┘
┌───────────────┬──────┬───────┐
│Directive │Local Value │Master Value │
├───────────────┼──────┼───────┤
│mbstring.detect_order │no value │no value │
├───────────────┼──────┼───────┤
│mbstring.encoding_translation │Off │Off │
├───────────────┼──────┼───────┤
│mbstring.func_overload │0 │0 │
├───────────────┼──────┼───────┤
│mbstring.http_input │pass │pass │
├───────────────┼──────┼───────┤
│mbstring.http_output │pass │pass │
├───────────────┼──────┼───────┤
│mbstring.internal_encoding │none │none │
├───────────────┼──────┼───────┤
│mbstring.language │Japanese │Japanese │
├───────────────┼──────┼───────┤
│mbstring.substitute_character │no value │no value │
└───────────────┴──────┴───────┘
最初は4.3.0側のmail関数はmb_send_mail関数にオーバーライドされているのか
と思ったのですが、mbstring.func_overloadの値は「0」でオーバーライドなし
になっているようで、今ひとつこの現象の原因がつかめません。
同じような現象を経験された方が居られたら、ご連絡ください。