[PHP-users 8333] Re: PHP4.2.1とPHP4.1.2 でのmb_send_mail関数について
HIRANO Nobuaki
php-users@php.gr.jp
Fri, 28 Jun 2002 11:27:31 +0900
【PHP4.2.1とPHP4.1.2 でのmb_send_mail関数について】
という件名で質問させていただきました、平野です。
小山様、アドバイスありがとうございます。
> この改行処理はは、実は MTA 側でやってたりしませんか? ちなみにこちらで
> 問題なかった MTA は postfix-20010228-pl05 (ちと古い(^^;) です。
見落としていました。(^^;
Postfixのバージョンは
4.2.1 --- postfix-1.1.11-1
4.1.2 --- postfix-0.0.20010228-0vl2
と差がありました。
で、Postfixのバージョンをpostfix-1.1.11-1に合わせてみた結果、
PHPの両バージョンとも強制改行されました。
(一応、EUCでの送信テストも行ってみたのですが、同じような結果になりまし
た。)
ちなみに原因は、「Postfix 1.1 Patch 06 available」の
$smtp_line_length_limitという値によるものだと思われます
---- from RELEASE_NOTES:
> The Postfix SMTP client now breaks message header or body lines
> that are longer than $smtp_line_length_limit characters (default:
> 990). Earlier Postfix versions broke lines at $line_length_limit
> characters (default: 2048). Postfix versions before 20010611 did
> not break long lines at all. Reportedly, some mail servers refuse
> to receive mail with lines that exceed the 1000 character limit
> that is specified by the SMTP standard.
-------------------------------------------------------------------
で文字化けは990バイト目が2バイト文字だった場合におこります。
ということで、mb_send_mailでエンコードされてることで変に改行されてしまい、
文字化けを起こすのだと思われます。
> Shift_JIS で書かれたスクリプトを処理するためには、藤本パッチの当たっ
> た PHP が必要ですがその辺は大丈夫でしょうか? (4.2.1 ではまだ藤本パッチ
> は取り込まれていませんでしたよね。)
そういうパッチがあるのですね。
参考にさせていただきます。
ありがとうございました。