Existe-t-il un didacticiel expliquant comment configurer le courrier électronique de confirmation d'inscription de Devise en partant de zéro (en développement et en production), c'est-à-dire si Action Mailer n'est pas configuré?
La recherche sur Google vient de mettre au jour un tas de pièces distinctes liées à cela. Aucune partie n’explique suffisamment, et je ne suis pas sûre de savoir comment elles s’assemblent. Existe-t-il une explication pas à pas, ou même quelque chose qui explique les étapes initiales?
Enfin réussi à le faire fonctionner. A suivi toutes les étapes de la réponse acceptée ci-dessous, puis a ajouté ce qui suit dans mon fichier environment.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]"
}
1. Assurez-vous d'inclure confirmable dans l'appel Model.devise
class User < ActiveRecord::Base
devise :database_authenticatable, :confirmable ...
end
2. Assurez-vous d'ajouter confirmable à la migration de l'utilisateur
create_table :users do |t|
t.database_authenticatable
t.confirmable
...
end
Si vous utilisez la version 2.0+, cela échoue car la solution n’offre plus d’aide à la migration, et donc t.confirmable
soulève une erreur. Au lieu de cela, copiez le bloc intitulé "Confirmable" de leur guide de migration .
3. Générez les vues Elaborer, avec l'une des commandes suivantes, afin de pouvoir remplacer les vues Elaborer:
Rails generate devise:views # global
Rails generate devise:views users # scoped
Vous pouvez maintenant remplacer les vues de messagerie dans devise/mailer/confirmation_instructions.html.erb
ou users/mailer/confirmation_instructions.html.erb
en fonction de votre configuration
4. Pour développement l'environnement ajoutez les lignes de configuration suivantes dans /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. Pour production environnement dans /config/environments/production.rb
vous pouvez utiliser quelque chose de similaire au suivant (en supposant que vous ayez un serveur SMTP sur 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 Pour tester la configuration en cours d'installation, installez la gem mailcatcher, que vous utiliserez comme serveur SMTP en cours de développement, en capturant tous les e-mails entrants et en les affichant sur http://localhost:1080/
:
gem install mailcatcher
Une fois installé, démarrez le serveur mailcatcher avec la commande:
mailcatcher
Un serveur SMTP jouet s'exécutera sur le port 1025, capturant des e-mails et les affichant sur le port HTTP 1080.
Vous pouvez maintenant créer un compte et voir les confirmations.
Je crois que vous devriez l'éditer à nouveau ... numéro de port. devrait être entre guillemets .. Comme ceci: -
:port => "587",
J'ai rencontré un problème dans Rails 3.2.0/Ruby 1.9.2
Avez-vous regardé le ActionMailer Rails Guide ?