【问题标题】:Rails Devise Confirmation Email Error: SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: unknown protocolRails 设计确认电子邮件错误:SSL_connect 返回=1 errno=0 状态=SSLv2/v3 读取服务器您好 A:未知协议
【发布时间】:2016-12-02 00:22:48
【问题描述】:

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

到目前为止,我尝试了许多来源,但仍然收到错误消息:SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: unknown protocol

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

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

【问题讨论】:

    标签: ruby-on-rails devise


    【解决方案1】:

    我实际上在中途找到了这个问题的答案,但我想我还是会发布以供将来参考,并且万一其他人也有同样的错误。显然,我也将步骤 4 中的代码粘贴到了 config/environment.rb 文件中。如果我误解了教程之类的,我想知道,但我删除了它,现在它可以工作了。

    【讨论】:

      猜你喜欢
      • 2015-07-25
      • 2015-06-13
      • 2011-03-31
      • 2019-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      相关资源
      最近更新 更多