我有一个运行Rails 4.2.0的应用程序,设计了3.4.1和最新版本的邮戳-rails创业板。一开始,发送重置密码邮件似乎很好,但我从未收到过这些邮件。
然后,我更改了config.action_mailer.raise_delivery_errors = true (它是假的),它显示了以下错误:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed请注意,这是在我的开发机器上。
我已经按照描述的这里实现了我的邮件程序,但是下面是相关的部分:
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 = trueIn /initializer/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错误的引用,但是找不到我觉得适用于这个错误的任何东西。
请帮帮忙?
更新:来自web上的各种资源,主要是这 one,我怀疑问题的根源可能是我使用的是当前版本的GIT附带的较旧版本的OpenSSL。当部署到Heroku时,我的应用程序就能工作。
发布于 2015-02-20 15:48:47
旧版本的OpenSSL确实会导致您的问题。由于贵宾狗漏洞,邮戳禁用了他们的API服务器上的SSLv3。因此,请确保使用包含修复的最新的OpenSSL版本和补丁Ruby版本。
https://stackoverflow.com/questions/28626899
复制相似问题