[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 ではまだ藤本パッチ
> は取り込まれていませんでしたよね。)

そういうパッチがあるのですね。
参考にさせていただきます。

ありがとうございました。