[PHP-users 20610]Re: mail関数で文字数制限?
ISIGE, Akira
xia @ silvia.com
2004年 3月 1日 (月) 22:49:44 JST
いしげ です.
ハズしてるかもしれませんが……
On 2004/03/01 22:33:00 JST,
moonface <moonface @ olive.freemail.ne.jp> wrote:
> 一定の文字数以上を入力した場合、本文途中から化けてしまうのです。
> (986バイトまでは化けません)
(snip)
> mail関数には送信文字数に制限があるのでしょうか?
MTA の制限ではないでしょうか?
以前,改行なしで 1000バイト以上になる文章を mb_send_mail() で
送信しようとした際に,こちらで使っていた postfix が
途中で切ってしまい文字化けになったことがあります.
正確には,ISO-2022-JP の文章の 990 バイト目(だっけかな?)で
改行を入れて切る動作をするのですが,この時に,
切られた 2行目の先頭に半角スペースを挿入するため,
エンコードされた日本語を復元できなくなる,といった事情でした.
postfix 上でこの文字数を変更することもできましたが(smtp_line_length_limit),
あとで環境を変えられたりすると困るので,
長い行は送る前に自分で切るようにしました.
<?php
$text = '長い長い(略)行';
for( $i = 0; $cut = mb_strcut( $text, $i, 72 ); $i += 72 ){
$tmp_text[] = $cut;
}
$text = join( "\n", $tmp_text );
?>
# この処理をもっとカッコよく行なう方法を募集中です :-)
--
ISIGE, Akira
PHP-users メーリングリストの案内