1

デバイスのメール確認に問題があります。メールキャッチャーを追加すると、正しく機能します:

Thu, 24 Sep 2015 05:49:50 +0300
From: please-change-me-at-config-initializers-devise@example.com
Reply-To: please-change-me-at-config-initializers-devise@example.com
To: ...@gmail.com
Message-ID: <560364ce3f3d_34372357331e9383d@gerdon-MS-7346.mail>
Subject: Confirmation instructions
Mime-Version: 1.0
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

<p>Welcome ...@gmail.com!</p>

<p>You can confirm your account email through the link below:</p>

<p><a href="http://localhost:3000/users/confirmation?confirmation_token=zYTXtSnJfom1oNS-o8Fy">Confirm my account</a></p>

しかし、私は自分のgmailでこれを取得していません。レール上の私のコードは次のとおりです。

/development.rb

 Rails.application.configure do
      config.cache_classes = false
      config.eager_load = false
      config.consider_all_requests_local       = true
      config.action_controller.perform_caching = false
      config.action_mailer.raise_delivery_errors = false
    config.action_mailer.perform_deliveries = true
      config.active_support.deprecation = :log
      config.active_record.migration_error = :page_load
      config.assets.debug = true
      config.assets.digest = true
      config.assets.raise_runtime_errors = true
      config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {:address => "localhost", :port => 1025}
    end

/production.rb

  Rails.application.configure do
      config.log_level = :debug
      config.i18n.fallbacks = true

      config.log_formatter = ::Logger::Formatter.new
      config.active_record.dump_schema_after_migration = false
      config.action_mailer.default_url_options = {:host => 'localhost:3000'}
    config.action_mailer.delivery_method = :smtp
    config.action_mailer.smtp_settings = {
      :address => "127.0.0.1"
      :port    => 25,
      :domain  => 'localhost:3000'
    }
    end

メール確認を設定しようとする際に、このコメントをドキュメントのように使用します: Devise でメール確認を設定するにはどうすればよいですか?

4

2 に答える 2

3

メール送信を有効にするには、2 つのことを行う必要があります。

  1. config/environments/development.rb でメールを設定します (既に行っているかどうかは不明です。

  2. config/initializers/devise.rb を編集して、Devise でメールを設定します。ログに表示される「送信元」アドレスを考えると、あなたは間違いなくそれをしていません。

ステップ 1. Gmail アカウントから送信する場合の設定は次のとおりです。開発モードでのメール送信の許可やデフォルトの URL オプションなど、すべてのメール設定に注意してください。アカウントを反映するように smtp 設定を変更する必要があります。

    Rails.application.configure do
      # Settings specified here will take precedence over those in config/application.rb.

      # In the development environment your application's code is reloaded on
      # every request. This slows down response time but is perfect for development
      # since you don't have to restart the web server when you make code changes.
      config.cache_classes = false

      # Do not eager load code on boot.
      config.eager_load = false

      # Show full error reports and disable caching.
      config.consider_all_requests_local       = true
      config.action_controller.perform_caching = false

      # Send emails in test mode
      config.action_mailer.perform_deliveries = true
      config.action_mailer.default_url_options = { :host => 'localhost:3000' }
      config.action_mailer.delivery_method = :smtp

      # Don't care if the mailer can't send.
      config.action_mailer.raise_delivery_errors = true

      config.action_mailer.smtp_settings = {
      address:            "smtp.gmail.com",
      port:               587,
      domain:             "domain.of.sender.net",
      authentication:     "plain",
      user_name:          "your_user_name",
      password:           "your_password",
      enable_starttls_auto: true
  }

ステップ 2. config/initializers/devise.rb を構成して、送信用に構成したばかりの電子メールを含めます。

# Use this hook to configure devise mailer, warden hooks and so forth.
# Many of these configuration options can be set straight in your model.
Devise.setup do |config|
  # The secret key used by Devise. Devise uses this key to generate
  # random tokens. Changing this key will render invalid all existing
  # confirmation, reset password and unlock tokens in the database.
  # Devise will use the `secret_key_base` on Rails 4+ applications as its `secret_key`
  # by default. You can change it below and use your own secret key.
  # config.secret_key = 'ewe44lwemwle66wmew4lewwew'

  # ==> Mailer Configuration
  # Configure the e-mail address which will be shown in Devise::Mailer,
  # note that it will be overwritten if you use your own mailer class
  # with default "from" parameter.
  config.mailer_sender = 'YOUR_EMAIL_HERE'
于 2015-09-25T02:17:36.503 に答える
1

これはばかげた質問のように聞こえるかもしれませんが、localhost で smtp サーバーを実行していますか??

于 2015-09-25T00:57:47.193 に答える