[PHP-dev 1182] Re: PHP4.4.1でmb_send_mailの第5引数が利かなくなってる

komura komura @ ma9.seikyou.ne.jp
2005年 11月 3日 (木) 23:08:44 JST


komura です。

On Thu, 03 Nov 2005 21:56:30 +0900
"Y.Watanabe" <haward99 @ yahoo.co.jp> wrote:

> 渡辺です。ども。
> 
> とりあえずphp-devのほうにも転送しておきます。
> 
> PHP4.4.1でmb_send_mailの第5引数が利かなくなってます。
> (たぶんPHP4.4.0以降かも?)
> 
> 困った困った・・・。

mb_send_mail() の第5引数が使えないとメールが送れない場合がありますので
不便ですね。

今回の mb_send_mail() に対する修正は PHP 4.4.1 になってから行われています
ので、PHP 4.4.0 では問題ないと思います。


対処方法としては、以下の Patch を使って PHP 4.4.1 の ext/mbstring/mbstring.c
を PHP 4.4.0 と同じ状態に戻す方法があります。

http://cvs.php.net/diff.php/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47&r2=1.142.2.47.2.1&ty=u


別の方法として、以下の Patch を適用して mail.force_extra_parameters を強制的に
有効にすれば mb_send_mail() の第5引数が有効になることを確認しました。

副作用のようなものですが、php.ini や ini_set() で mail.force_extra_parameters
を設定すると、mb_send_mail() でのみ機能するようになります。

diff -ru php-4.4.1.orig/ext/mbstring/mbstring.c php-4.4.1/ext/mbstring/mbstring.c
--- php-4.4.1.orig/ext/mbstring/mbstring.c	2005-09-21 22:18:57.000000000 +0900
+++ php-4.4.1/ext/mbstring/mbstring.c	2005-11-03 15:47:24.351802500 +0900
@@ -812,6 +812,8 @@
 	 STD_PHP_INI_BOOLEAN("mbstring.encoding_translation", "0",
 	 PHP_INI_SYSTEM | PHP_INI_PERDIR, OnUpdate_mbstring_encoding_translation, 
 	 encoding_translation, zend_mbstring_globals, mbstring_globals)					 
+
+	 PHP_INI_ENTRY("mail.force_extra_parameters", NULL, PHP_INI_ALL, NULL)
 PHP_INI_END()
 /* }}} */

mail() 関数では mail.force_extra_parameters は無視されますので良い方法では
ありませんが、参考までに。



また、PHP 4.4.0 では、mb_encode_mimeheader() が正常に動作しないという問題
がありましたが、PHP 4.4.1 でも修正されていません。

http://ns1.php.gr.jp/pipermail/php-users/2005-July/026701.html

PHP 5.0.4, PHP 5.0.5 でも同様の問題が報告されています。

http://ns1.php.gr.jp/pipermail/php-users/2005-July/026709.html
http://ns1.php.gr.jp/pipermail/php-users/2005-October/027764.html

-- 
komura <komura @ ma9.seikyou.ne.jp>


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