Rails 3 ActionMailer错误 - 主机名与服务器证书不匹配

Sam*_*ong 25 ruby-on-rails actionmailer

我正在为我的Rails 3应用程序设置SMTP.

这种配置有效.

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {  
  :address              => "smtp.gmail.com",  
  :port                 => 587,  
  :domain               => "mydomain.com",  
  :user_name            => "<username>",  
  :password             => "<password>",  
  :authentication       => "plain",  
  :enable_starttls_auto => true  
}
Run Code Online (Sandbox Code Playgroud)

但是这种配置没有.它给出"主机名与服务器证书不匹配"

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {  
  :address              => "some_other_server.com",  
  :port                 => 587,  
  :domain               => "mydomain.com",  
  :user_name            => "<username>",  
  :password             => "<password>",  
  :authentication       => "plain",  
  :enable_starttls_auto => true  
}
Run Code Online (Sandbox Code Playgroud)

奇怪的是,相同的配置在Rails 2.3.8中有效.(:tls => true)

怎么了?

小智 53

在ActionMailer smtp设置中尝试此操作:

:openssl_verify_mode => 'none'
Run Code Online (Sandbox Code Playgroud)

它为您提供安全连接,但不验证任何事情.可能不是生产应用程序的最佳主意,但它适用于我.


daz*_*z13 16

我有同样的问题.通过更改ActionMailer :: Base.smtp_settings解决了这个问题:

:enable_starttls_auto => true  
Run Code Online (Sandbox Code Playgroud)

:enable_starttls_auto => false
Run Code Online (Sandbox Code Playgroud)

并且必须确保:user_name值包含@ domain.com