1. Stellen Sie sicher, dass Sie bestätigbar in Model.devise aufrufen
class User < ActiveRecord::Base
devise :database_authenticatable, :confirmable ...
end
2. Stellen Sie sicher, dass Sie der Benutzermigration eine Bestätigung hinzufügen
create_table :users do |t|
t.database_authenticatable
t.confirmable
...
end
Wenn Sie devise 2.0+ verwenden, schlägt dies fehl, da devise keine Migrationshilfen mehr bereitstellt und daher t.confirmable
einen Fehler auslöst. Kopieren Sie stattdessen den Block mit der Bezeichnung "Bestätigbar" aus dem Migrationshandbuch .
3. Generieren Sie die Entwurfsansichten mit einem der folgenden Befehle, damit Sie die Entwurfsmaileransichten überschreiben können:
rails generate devise:views # global
rails generate devise:views users # scoped
Sie können jetzt die Maileransichten in devise/mailer/confirmation_instructions.html.erb
oder users/mailer/confirmation_instructions.html.erb
abhängig von Ihrem Setup überschreiben
4. Fügen Sie für die Entwicklungsumgebung die folgenden Konfigurationszeilen hinzu/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. Für die Produktionsumgebung in können /config/environments/production.rb
Sie Folgendes verwenden (vorausgesetzt, Sie haben einen SMTP-Server auf 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 Um das Setup in der Entwicklung zu testen, installieren Sie das Mailcatcher-Juwel, das Sie in der Entwicklung als SMTP-Server verwenden. Fangen Sie alle eingehenden E-Mails ab und zeigen Sie sie an http://localhost:1080/
:
gem install mailcatcher
Nach der Installation starten Sie den Mailcatcher-Server mit dem folgenden Befehl:
mailcatcher
Auf Port 1025 wird ein Spielzeug-SMTP-Server ausgeführt, der E-Mails abfängt und auf HTTP-Port 1080 verschiebt.
Sie können jetzt ein Konto erstellen und die Bestätigungen anzeigen.
t.confirmable
wirft einen Fehler. Kopieren Sie stattdessen den Block mit der Bezeichnung "Bestätigbar" aus dem Migrationshandbuch: github.com/plataformatec/devise/wiki/…Ich glaube, Sie sollten es noch einmal bearbeiten ... Port-Nr. sollte in Anführungszeichen stehen .. So: -
Ich hatte ein Problem mit Rails 3.2.0 / Ruby 1.9.2
quelle
"1025"
wenn Sie Mailcatcher verwenden.Haben Sie sich den ActionMailer Rails Guide angesehen ?
quelle