[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」でオーバーライドなし
になっているようで、今ひとつこの現象の原因がつかめません。


同じような現象を経験された方が居られたら、ご連絡ください。