From: Hisashi Yahata Date: 2006-08-09T19:27:52+09:00 Subject: [ruby-list:42650] Re: メールのSMTP認証の方法(質問) 大原様  回答を有り難うございます。 > 認証の無い場合はうまくいくということで、 > helo_domain は問題ではないのではないかと推測します。 いえ、そうではありません。 認証のない条件では、 address ='△△.○○.××.jp', port = 25だけでよく、 helo_domain は不要です。 ところが、SMTP認証のあるサーバーに替えたときに、 address ='smtpa.○○.××.jp', port = 465となります。 ここで、helo_domain=が必要になり、問題が発生した次第です。 このの名前の書き込みかたと=< >の意味が不明です。なぜ、<>と 表示されていますが、その意味がわかりません。 Resolv.getname('133.5.△△.○○')としても、エラーが表示されて、ドメイン名を 取得できませんでしたので、参考にできません。 直接にhelo_domaiに記入すればよいので、"localhost"や'localhost.localdomain'と 記述してみましたが、これも次のようにタイムアウトして、だめでした。 localhost名というのは、どうにでも変えられるので、余り意味はないと思うのです が。 c:/ruby/lib/ruby/1.8/timeout.rb:42:in `rbuf_fill': execution expired (Timeout::Error) from c:/ruby/lib/ruby/1.8/net/protocol.rb:196:in `timeout' from c:/ruby/lib/ruby/1.8/timeout.rb:55:in `timeout' from c:/ruby/lib/ruby/1.8/net/protocol.rb:196:in `rbuf_fill' from c:/ruby/lib/ruby/1.8/net/protocol.rb:160:in `readuntil' from c:/ruby/lib/ruby/1.8/net/protocol.rb:171:in `readline' from c:/ruby/lib/ruby/1.8/net/smtp.rb:664:in `recv_response' from c:/ruby/lib/ruby/1.8/net/smtp.rb:396:in `do_start' from c:/ruby/lib/ruby/1.8/net/smtp.rb:396:in `critical' from c:/ruby/lib/ruby/1.8/net/smtp.rb:396:in `do_start' from c:/ruby/lib/ruby/1.8/net/smtp.rb:384:in `start' from c:/ruby/lib/ruby/1.8/net/smtp.rb:316:in `start' from C:/ruby-hy/rbDDB.tmp:64 from C:/ruby-hy/rbDDB.tmp:21:in `each' from C:/ruby-hy/rbDDB.tmp:21 のように、時間切れとなり、認証されませんでした。 > Outlook は認証メカニズムに LOGIN を利用していると思いますので、 > これに合わせて LOGIN を利用してみるとどうでしょうか。 > # LOGIN はリファレンスマニュアルには載っていませんが……。 > m.start("localhost", "○○○", "*****", :login) > あと、送信失敗時のエラーメッセージなどがあれば、 > それを見ると解決が早いかと思います。 残念ながら、タイムアウトして、しまいます。 すなわち、OUTLOOKでは、認証されるので、何か問題があるのでしょうが、わかりま せん。 矢幡 久