Я не получаю подтверждение по почте
У меня есть проблема с разработкой подтверждения почты. Я добавил 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 ответа
Чтобы включить отправку электронной почты, вам нужно сделать две вещи.
Сконфигурируйте свою электронную почту для в config/ средах /development.rb (не уверен, что вы уже сделали это.
Настройте свою электронную почту в 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-сервер на локальном хосте??