Rails设计确认电子邮件错误:SSL_connect返回= 1 errno = 0状态= SSLv2 / v3读取服务器问候A:未知协议

时间:2016-07-27 20:09:38

标签: ruby-on-rails devise

我正在尝试为我的用户设计模型设置电子邮件确认。我实际上并没有使用设计用户名和密码等等,我正在使用Facebook身份验证进行登录/注册。但是,我需要在用户注册后获取并确认用户的电子邮件。

到目前为止,我尝试了很多来源,但我仍然收到错误:SSL_connect返回= 1 errno = 0状态= SSLv2 / v3读取服务器问候答:未知协议

这是我到目前为止所做的:

1执行迁移以添加设备的可确认相关列:

class AddConfirmableToDevise < ActiveRecord::Migration
    def change
        add_column :users, :email, :string
        add_column :users, :confirmation_token, :string
        add_column :users, :confirmed_at, :datetime
        add_column :users, :confirmation_sent_at, :datetime
    end
end

2告诉用户模型我们正在使用确认

class User < ActiveRecord::Base
    devise :confirmable
    ...
    #rest of model
    ...
end

3将电子邮件添加到config / initializers / devise.rb

config.mailer_sender = '<my_email_address>@gmail.com'

4将邮件信息添加到config / environments / development.rb

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
    address:              'smtp.gmail.com',
    port:                 587,
    domain:               'localhost:3000',
    user_name:            '<gmail_username>',
    password:             '<gmail_password>',
    authentication:       'plain',
    enable_starttls_auto: true  }

5在操作中发送电子邮件:在用户控制器中设置

def setup
    user = current_user
    user.email = initial_setup_params[:email]
    if user.valid?
        user.save!
        user.send_confirmation_instructions
    end
end

1 个答案:

答案 0 :(得分:0)

我实际上是在中途找到了这个问题的答案,但我认为无论如何我都会在将来发帖以及其他任何人都有同样错误的机会。显然,我也在config / environment.rb文件中粘贴了第4步中的代码。如果我误解了一个教程或什么,但我删除了它,现在它可以工作了。