From: OHARA Shigeki Date: 1999-02-24T21:53:12+09:00 Subject: [ruby-list:12349] Re: mailclient 0.1 大原です。 os@iij.ad.jp (OHARA Shigeki) さんの、 "Wed, 24 Feb 1999 17:56:30 +0900" にだした、 「[ruby-list:12342] Re: mailclient 0.1」というメールにて…… : > > ところで、SMTPclientでメールを送ると改行が最後に余分に付くよ > > うな気がするのですが、これはなぜでしょう。 > > smtpclient.rb の、 (snip...) > というあたりがちょっとまずいような気がします。 と書きましたが、他にも改行の処理がおかしいと思える所があったので、 IM を参考に、ちょっと直してみました。 もっとうまく書けそうな気がしますが、とりあえず、 こんな感じでどうでしょう? ---- OHARA Shigeki (大原重樹) --- smtpclient.rb.orig Tue Feb 23 13:31:35 1999 +++ smtpclient.rb Wed Feb 24 21:47:20 1999 @@ -87,14 +87,19 @@ writeline( 'DATA' ) check_reply_data - # don't send "CRLR." in mail body or header... - # - mstr.gsub!( /(\r\n|\n|\r)\./, "\r\n.." ) + lines = mstr.split(/(\r\n|\n|\r)/) + mstr = '' + lines.each { |l| + l += "\n" if (/[^\n]$/) + l.sub!(/\r?\n/, "\r\n") + l.sub!(/^\./, ".." ) + mstr += l + } - msize = mstr.size + 5 + msize = mstr.size + 3 tell( "SMTPsocket: sending mail (#{msize} bytes)" ) - write( mstr + "\r\n.\r\n", false ) + write( mstr + ".\r\n", false ) tell( 'SMTPsocket: sent mail' ) check_reply