ruby-on-rails - 升级到 Rails 3.2.0 并使用 Devise & tlsmail gem for Google Apps 获取 SSLError?

标签 ruby-on-rails ruby ruby-on-rails-3 devise

我刚刚升级到 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/

相关文章:

ruby-on-rails - Rails 中两个模型之间的多重关联

ruby-on-rails - 将 Gem 'wdm' 添加到您的 GemFile

ruby-on-rails - 如何使用 Ruby on Rails 处理事务中的多个异常以导入文本文件

ruby-on-rails-3 - 设计可记住的东西就是什么都不记得

ruby-on-rails-3 - 我必须运行 rake asset :clean before rake assets:precompile?

ruby-on-rails-3 - Jenkins 在单元测试失败时成功(Rails)

mysql - 从数据库(rails)中的数组中提取数据

ruby-on-rails - 我怎么知道使用了多少 ActiveSupport Duration?

ruby-on-rails - 如何使用 Rails Form 和 Role Model Gem 添加多个角色

ruby - 如何使用机器学习对产品的品牌名称进行分类?