On Tue, 3 Aug 1999 12:52:43 +0900, Minero Aoki wrote: > ないはずです。小さくすると送れるということは、たぶんサイズが > 原因でしょう。想像するに、行末コードが\rとかになっているのでは? > あるいは、\r\nの環境で\nの場合でも同様です。 > そうすると、eachループの一回目で一気に全部読み込まれて、3MBの > 文字列にgsub!をかけることになるので、すさまじい負荷がかかります。 行末は \n ですが、送れないのはたかだか8KBくらいです。 > 望ましいと思います。sendmailなど、巨大な文字列を扱う可能性のある > メソッドはどれも引数からeachを介して文字列を受けとることになって > いるので、文字列やIOにラッパーをかぶせてやるのがいいです。 具体的にはどういうラッパーですか? > それからついでに書いておくと、POPMail#popなど巨大な文字列を受け取る > 可能性のあるメソッドは省略可能な引数として「読み込み先オブジェクト」 > を渡せます。読みこまれた文字列は << メソッドによってこのオブジェクト > に渡されるので、たとえば > > File.open( '/tmp/save', 'w' ){|f| popmail.pop( f ) } > > で直接ファイルに書き込めます。 なるほど、これは便利かも。 > > ところで、こういうログを取るときの仕様は決まったんでしたっけ? > > session.rbにあるNet::DEBUGといういかにもあやしげな定数にtrueを > いれておくと$stderrにコマンドが表示されます。アプリケーション側から > それをうける仕組はまだありません。 > > これを利用して $stderr -> @stderr とするのでどうでしょう。 いいですね。 -- 人生を背負い投げ 菊谷 誠(Kikutani Makoto) kikutani / sprintmail.com