Как настроить подтверждение по электронной почте с разработки?
есть ли учебник, в котором объясняется, как настроить электронную почту подтверждения регистрации Devise с нуля (как в разработке, так и в производстве), т. е. если у вас нет настройки Action Mailer?
поиск Google только что обнаружил кучу отдельных частей, связанных с этим. Никто не объясняет достаточно, и я не уверен, как они подходят друг другу. Есть ли там пошаговое объяснение или даже что-то, что объясняет начальные шаги?
наконец-то получилось. Выполните все шаги в принятом ответе ниже, а затем добавьте следующее в мою среду.rb файл:
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:tls => true,
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:authentication => :login,
:user_name => "[username]",
:password => "[password]"
}
3 ответа:
1. убедитесь, что вы включили confirmable в модель.придумать вызов
class User < ActiveRecord::Base devise :database_authenticatable, :confirmable ... end
2. убедитесь, что вы добавили confirmable к миграции пользователя
create_table :users do |t| t.database_authenticatable t.confirmable ... end
если вы используете devise 2.0+ это не удается, потому что devise больше не предоставляет помощников миграции, и поэтому
t.confirmable
выдает ошибку. Вместо этого скопируйте блок с надписью "Confirmable" из их руководство по миграции.3. создать разработать представления, с любой из следующих команд, так что вы можете переопределить представления devise mailer:
rails generate devise:views # global rails generate devise:views users # scoped
теперь вы можете переопределить представления почтовой программы в
devise/mailer/confirmation_instructions.html.erb
илиusers/mailer/confirmation_instructions.html.erb
в зависимости от настройки4. на развитие добавьте следующие строки config в
/config/environments/development.rb
config.action_mailer.default_url_options = { :host => 'localhost:3000' } config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = {:address => "localhost", :port => 1025}
5. на производства в среду
/config/environments/production.rb
вы можете использовать что-то похожее на следующее (предположим, у вас есть SMTP-сервер на localhost:25):config.action_mailer.default_url_options = {:host => 'yourdomain.com'} config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :address => "127.0.0.1", :port => 25, :domain => 'yourdomain.com' }
6 чтобы проверить установку в разработке установите MailCatcher gem, который вы будете использовать в качестве SMTP-сервера в разработке, ловя все входящие письма и отображая их на
http://localhost:1080/
:gem install mailcatcher
после установки запустите сервер mailcatcher с командой:
mailcatcher
игрушечный SMTP-сервер будет работать на порту 1025, ловя электронные письма и отображая их на HTTP-порту 1080.
теперь вы можете создать учетную запись и вижу подтверждений.
Я считаю, что вы должны изменить его снова... порт нет. должно быть в кавычках .. Вот так: -
:port => "587",
я столкнулся с проблемой в rails 3.2.0 / ruby 1.9.2
вы смотрели ActionMailer Rails Guide?