Я настраиваю отправку подтверждения по электронной почте после того, как пользователь зарегистрируется с помощью devise. Я сделал все, что здесь написано (https: // github.com/plataformatec/devise/wiki/How-To:-Add-:confirmable-to-Users), но он по-прежнему не работает.
Вот несколько кодов:
//development.rb
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
//devise.rb
config.mailer_sender = 'myEmail@gmail.com'
# Configure the class responsible to send e-mails.
config.mailer = "Mailer"
//Mailer.rb
class Mailer < Devise::Mailer
helper :application
include Devise::Controllers::UrlHelpers
default template_path: 'devise/mailer'
end
Мне нужно настроить что-то еще, чтобы отправить письмо с подтверждением по электронной почте в среде разработки?
3 ответа
Да, вы должны настроить параметры smtp для отправки писем, например:
require 'tlsmail'
Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
ActionMailer::Base.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.default :charset => "utf-8"
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:user_name => "YOUR_EMAIL",
:password => 'PASSWORD',
:authentication => "plain",
:enable_starttls_auto => true
}
Добавьте приведенный выше код в свой development.rb
, чтобы настроить параметры smtp
. Добавьте свой адрес электронной почты и пароль в код, где это необходимо. Надеюсь, все будет хорошо!
В инициализаторах / devise.rb config.mailer_sender = 'ваш адрес электронной почты'
config.action_mailer.default_url_options = { host: "localhost", port: 3000 }
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 465,
domain: 'gmail.com',
user_name: 'your email',
password: 'your password',
authentication: 'plain',
enable_starttls_auto: true,
ssl: true
}
В дополнение к ответу @Muhammad также включите эту строку кода в свой development.rb
config.action_mailer.default_url_options = {host: 'your server' } # ex. localhost:3000
config.action_mailer.raise_delivery_errors = true # to raise error if smtp has error on setup
config.action_mailer.default :charset => "utf-8"
Похожие вопросы
Связанные вопросы
Новые вопросы
ruby-on-rails
Ruby on Rails - это полнофункциональная платформа веб-приложений с открытым исходным кодом, написанная на Ruby. Он следует популярной модели фреймворка MVC и известен своим подходом «соглашение поверх конфигурации» при разработке приложений.