Я не получаю подтверждение по почте

У меня есть проблема с разработкой подтверждения почты. Я добавил mailcatcher, чтобы все работало правильно:

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?

2 ответа

Решение

Чтобы включить отправку электронной почты, вам нужно сделать две вещи.

  1. Сконфигурируйте свою электронную почту для в config/ средах /development.rb (не уверен, что вы уже сделали это.

  2. Настройте свою электронную почту в Devise, отредактировав config/initializers/devise.rb. Вы определенно не сделали этого, учитывая адрес "от", видимый в вашем журнале.

Шаг 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'

Это может звучать глупо, но вы используете SMTP-сервер на локальном хосте??

Другие вопросы по тегам