使用Devise发送PostMark邮件时出现SSL错误

时间:2015-02-20 10:36:58

标签: ruby-on-rails-4 postmark

我有一个运行Rails 4.2.0,Devise 3.4.1的应用程序和postmark-rails gem的最新版本。首先发送重置密码邮件似乎工作正常,但我从未收到过邮件。

然后我改变了config.action_mailer.raise_delivery_errors = true(这是假的),这显示出以下错误:

SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

请注意,这是在我的开发机器上。

我已按照here所述实现了我的邮件程序,但以下是相关内容:

IN /app/mailers/user_mailer.rb:

class UserMailer < ActionMailer::Base
 include Devise::Mailers::Helpers

 default from: "xxx@xxx.xxx" # <- From address replaced by x's

 def confirmation_instructions(record)
  devise_mail(record, :confirmation_instructions)
 end

 def reset_password_instructions(record,token,options)
  devise_mail(record, :reset_password_instructions)
 end

 def unlock_instructions(record)
  devise_mail(record, :unlock_instructions)
 end

end

然后在development.rb中:

config.action_mailer.raise_delivery_errors = true
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_mailer.perform_deliveries = true

在/initializers/devise.rb中:

config.mailer = 'UserMailer'

application.rb :(我的应用程序都可以使用这两个ENV变量)

config.action_mailer.delivery_method = :postmark
config.action_mailer.postmark_settings = { :api_key => ENV['POSTMARK_API_KEY'], :api_token => ENV['POSTMARK_API_TOKEN'] }

的Gemfile:

gem 'postmark-rails'
gem 'mail'

我发现了许多对此SSL错误的引用,但无法找到我觉得适用于此的任何内容。

请帮帮忙?

更新 从网上的各种资源,主要是this一个,我怀疑我的问题的根源可能是我使用的是当前版本的GIT for Windows附带的旧版OpenSSL。我的应用程序在部署到Heroku时可以使用。

1 个答案:

答案 0 :(得分:1)

旧版本的OpenSSL可能确实会导致您的问题。由于POODLE漏洞,邮戳在其API服务器上禁用了SSLv3。因此,请务必使用包含修复程序的up-to-date OpenSSL versionpatched Ruby version