2011年7月5日火曜日

Ruby Mail で TLS を切る

Ruby Mail を使ってメールを送ろうと思ったら、

/usr/local/lib/ruby/1.8/openssl/ssl-internal.rb:123:in `post_connection_check': hostname was not match with the server certificate (OpenSSL::SSL::SSLError)
        from /usr/local/lib/ruby/gems/1.8/gems/mail-2.3.0/lib/mail/core_extensions/smtp.rb:17:in `tlsconnect'
        from /usr/local/lib/ruby/1.8/net/smtp.rb:562:in `do_start'
        from /usr/local/lib/ruby/1.8/net/smtp.rb:525:in `start'
        from /usr/local/lib/ruby/gems/1.8/gems/mail-2.3.0/lib/mail/network/delivery_methods/smtp.rb:128:in `deliver!'
        from /usr/local/lib/ruby/gems/1.8/gems/mail-2.3.0/lib/mail/message.rb:1989:in `do_delivery'
        from /usr/local/lib/ruby/gems/1.8/gems/mail-2.3.0/lib/mail/message.rb:232:in `deliver'

というメッセージが出てメールが送れなかったので、

Mail.defaults do
  delivery_method :smtp, { :enable_starttls_auto => false }
end

として回避した。このやり方が正しいかどうかは分からない。