¿Cómo configuro la confirmación por correo electrónico con Devise?
¿Hay algún tutorial que explique cómo configurar el correo electrónico de confirmación de registro de Devise desde cero (tanto en desarrollo como en producción), es decir, si no tiene configurado Action Mailer?
La búsqueda de Google acaba de aparecer un montón de piezas separadas relacionadas con esto. Ninguna pieza explica lo suficiente, y no estoy seguro de cómo encajan. ¿Hay una explicación paso a paso por ahí, o incluso algo que explique los pasos iniciales?
Finalmente lo tengo trabajo. Seguí todos los pasos en la respuesta aceptada a continuación, luego agregué lo siguiente a mi entorno.archivo 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 answers
1. Asegúrese de incluir confirmable en el Modelo.devise call
class User < ActiveRecord::Base
devise :database_authenticatable, :confirmable ...
end
2. Asegúrese de agregar confirmable a la migración de usuarios
create_table :users do |t|
t.database_authenticatable
t.confirmable
...
end
Si está utilizando devise 2.0+, esto falla porque devise ya no proporciona ayudantes de migración, por lo que t.confirmable
genera un error. En su lugar, copie el bloque etiquetado como "Confirmable" de su guía de migración.
3. Genere las vistas de devise, con cualquiera de los siguientes comandos, para que pueda anular las vistas de devise mailer:
rails generate devise:views # global
rails generate devise:views users # scoped
Ahora puede anular las vistas de correo en devise/mailer/confirmation_instructions.html.erb
o users/mailer/confirmation_instructions.html.erb
dependiendo de su configuración
4. Para entorno de desarrollo agregue las siguientes líneas de configuración en /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. Para entorno de producción en /config/environments/production.rb
puede usar algo similar a lo siguiente (suponiendo que tenga un servidor SMTP en 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 Para probar la configuración en desarrollo instale la gema mailcatcher, que utilizará como servidor SMTP en desarrollo, capturando todos los correos entrantes y mostrándolos en http://localhost:1080/
:
gem install mailcatcher
Una vez instalado inicie el servidor mailcatcher con el comando:
mailcatcher
Un servidor SMTP de juguete se ejecutará en el puerto 1025 capturando correos electrónicos y desplazándolos en el puerto HTTP 1080.
Ahora puede crear una cuenta y ver las confirmaciones.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-12-01 19:33:46
Creo que deberías editarlo una vez más... puerto no. debería estar entre comillas .. Así: -
:port => "587",
Me enfrenté a un problema en rails 3.2.0/ruby 1.9.2
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-11-18 19:26:42