UsersController中的OpenSSL :: SSL :: SSLError #create(SSL_connect返回= 1 errno = 0状态=未知状态:未知协议)

时间:2014-08-14 11:32:47

标签: ruby-on-rails ruby ssl openssl sendmail

我已经看到很多StackOverFlow的回答,并再次发布此问题。 在某些时候发送邮件时引发问题,如果我重新启动服务器,我的工作正常。我再次遇到问题。

SMTP设置:

config.action_mailer.smtp_settings = {
 address:              'smtp.1and1.com',
 port:                 25,
 domain:               'leotechnosoft.net',
 user_name:            'santoshk@leotechnosoft.net',
 password:             'password',
 openssl_verify_mode:  'none',
 authentication:       'plain',
 enable_starttls_auto: true  }

错误

OpenSSL::SSL::SSLError in UsersController#create

SSL_connect returned=1 errno=0 state=unknown state: unknown protocol

我厌倦了更改设置ssl true / false,tls是/ false,open_ssl_verify_mode:none enable_starttls_auto:true。

请解释一下这个问题的根本原因以及如何解决。

Ruby 1.9.3(实际上在升级到ruby 2.1.2之后问题已经提出,然后它在1.9.3中也不起作用)

Ubuntu 12.04

谢谢

2 个答案:

答案 0 :(得分:1)

我使用gmail smtp收到相同的消息,但是当我从“plain”更改为“login”时,问题就解决了。

  config.action_mailer.delivery_method = :smtp
  config.action_mailer.perform_deliveries = true
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.smtp_settings = {
      enable_starttls_auto: true,
      address:              'smtp.gmail.com',
      port:                 587,
      domain:               'gmail.com',
      user_name:            'youremail@gmail.com',
      password:             'yourpassword',
      authentication:       :login
    }

答案 1 :(得分:0)

在使用openssl 1.0.1时,它似乎与ubuntu 12.04中的已知错误相关,如上一个答案所述:

OpenSSL::SSL::SSLError Ubuntu 12.04 only

您可以在Ubuntu的错误跟踪器上找到有关该错误的更多信息https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/965371

显然,如果你强制使用SSLv3,错误就会消失。

Ruby SSL error - sslv3 alert unexpected message

您可能还想查看leotechnosoft.net在使用SSL时是否阻止端口25,因为某些托管服务提供商有时会默认阻止端口25。当您使用SSL时,请尝试使用端口465。