我刚刚升级到 Rails 3.2.0 并在注册发送欢迎电子邮件后收到此错误:
OpenSSL::SSL::SSLError in Devise::RegistrationsController#create
SSL_connect returned=1 errno=0 state=SSLv3 read server.....
certificate B: certificate verify failed
我正在使用这些 gem(最相关的):
gem 'rails', '3.2.0'
gem "pg", "0.12.0"
gem "devise", "1.5.3"
gem "thin", "1.3.1"
gem "eventmachine", "1.0.0.beta.4.1" # I'm on Windows 7 64x
gem "tlsmail", "0.0.1"
然后让 Google Apps 和邮件工作:
环境/发展.rb
require 'tlsmail'
Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.smtp_settings = {
:enable_starttls_auto => true,
:address => 'smtp.gmail.com',
:port => 587,
:tls => true,
:domain => 'app.com',
:authentication => :plain,
:user_name => 'test@myapp.com',
:password => 'app'
}
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
我现在没有使用任何类型的 SSL/HTTPS。
还有其他人有这个问题或知道如何解决吗?
2012 年 9 月 1 日更新
您不再需要这个 gem,因为 gmail 现在可以与 Rails 一起使用。
http://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration-for-gmail
最佳答案
显然,ActionMailer::Base.smtp_settings
的 :tls => true
选项在 Rails 3.2 中不起作用。尝试删除它,这样您就可以:
ActionMailer::Base.smtp_settings = {
:enable_starttls_auto => true,
:address => 'smtp.gmail.com',
:port => 587,
:domain => 'app.com',
:authentication => :plain,
:user_name => 'test@myapp.com',
:password => 'app'
}
我遇到了同样的问题,这对我有用。我还没有找到任何关于它的官方文档;正在四处寻找,Dan Connor's blog post告诉我。
关于ruby-on-rails - 升级到 Rails 3.2.0 并使用 Devise & tlsmail gem for Google Apps 获取 SSLError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9102014/