トップ «前の日記(2006-05-11 (木)) 最新 次の日記(2006-06-14 (水))» 編集

2006-06-07 (水) [長年日記]

[Ruby] net/smtpの動きの違い

Ruby-mswin32 (ja)からダウンロードさせてもらったmswin32版のrubyを使ってnet/smtpのメール送信をしてみたのだが、うまくいったりいかなかったり。

動かしたスクリプト

require 'net/smtp'
Net::SMTP.start('localhost.domain.co.jp') {|smtp|}

動いた構成

ダメだった構成

何がなんだか

Win2kは正常終了するのもあったけど、エラーすら返してくれないのもあった。WinNTは以下のようなエラーが返ってきた。

Exception `Timeout::Error' at C:/ruby-1.8/lib/ruby/1.8/timeout.rb:54 - execution expired
Exception `Timeout::Error' at C:/ruby-1.8/lib/ruby/1.8/net/smtp.rb:689 - execution expired
C:/ruby-1.8/lib/ruby/1.8/timeout.rb:54:in `rbuf_fill': execution expired (Timeout::Error)
        from C:/ruby-1.8/lib/ruby/1.8/timeout.rb:56:in `timeout'
        from C:/ruby-1.8/lib/ruby/1.8/timeout.rb:76:in `timeout'
        from C:/ruby-1.8/lib/ruby/1.8/net/protocol.rb:132:in `rbuf_fill'
        from C:/ruby-1.8/lib/ruby/1.8/net/protocol.rb:116:in `readuntil'
        from C:/ruby-1.8/lib/ruby/1.8/net/protocol.rb:126:in `readline'
        from C:/ruby-1.8/lib/ruby/1.8/net/smtp.rb:664:in `recv_response'
        from C:/ruby-1.8/lib/ruby/1.8/net/smtp.rb:396:in `do_start'
        from C:/ruby-1.8/lib/ruby/1.8/net/smtp.rb:686:in `critical'
        from C:/ruby-1.8/lib/ruby/1.8/net/smtp.rb:396:in `do_start'
        from C:/ruby-1.8/lib/ruby/1.8/net/smtp.rb:378:in `start'
        from C:/ruby-1.8/lib/ruby/1.8/net/smtp.rb:316:in `start'
        from test.rb:20

デバッグモードで追っかけたら表示の通りnet/smtp.rb:664の@socket.readlineで「ちゅどーん!」ってのは分かったけど、自分にはそれしか分からなかった...

telnetコマンドでは正常に応答できるのにorz


トップ «前の日記(2006-05-11 (木)) 最新 次の日記(2006-06-14 (水))» 編集