2015-02-20 3 views
0

У меня есть приложение, работающее с Rails 4.2.0, Devise 3.4.1 и последняя версия драгоценного камня postmark-rails. Поначалу отправка почты с паролем сброса, казалось, работала нормально, но я никогда не получал почту.Ошибка SSL при отправке почты PostMark с помощью Devise

Тогда я изменил config.action_mailer.raise_delivery_errors = true (это была ложь), который показал следующее сообщение об ошибке:

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

Заметьте, что это на моей машине развития.

Я выполнил свою почтовую программу, как описано here, но вот соответствующие биты:

В /app/mailers/user_mailer.rb:

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

default from: "[email protected]" # <- 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, но не смог найти что-то, что, по моему мнению, относится к этому.

Помогите?

UPDATE: Из различных источников в Интернете, в основном this один, я подозреваю, что источник моей проблемы может быть то, что я использую старую версию OpenSSL, что поставляется с текущей версией GIT для Windows, , Мое приложение работает при развертывании в Heroku.

ответ

1

Старая версия OpenSSL может действительно стать причиной вашей проблемы. Postmark отключил SSLv3 на своих серверах API из-за уязвимости POODLE. Из-за этого обязательно используйте up-to-date OpenSSL version и patched Ruby version, который включает исправление.

Смежные вопросы