Gibt es ein Tutorial, in dem erklärt wird, wie Sie die Anmeldebestätigungs-E-Mail von Grund auf neu einrichten (sowohl in der Entwicklung als auch in der Produktion), d. H., Wenn Sie Action Mailer nicht eingerichtet haben?
Die Google-Suche hat soeben eine Reihe separater Teile gefunden, die damit zusammenhängen. Kein Stück erklärt genug und ich bin mir nicht sicher, wie sie zusammenpassen. Gibt es da draußen eine schrittweise Erklärung oder sogar eine Erklärung für die ersten Schritte?
Endlich hat es funktioniert. Befolgte alle Schritte in der unten angegebenen akzeptierten Antwort und fügte Folgendes zu meiner Datei environment.rb hinzu:
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. Stellen Sie sicher, dass Sie den Aufruf von Model.devise mitbestätigen
class User < ActiveRecord::Base
devise :database_authenticatable, :confirmable ...
end
2. Stellen Sie sicher, dass Sie der Benutzermigration einen bestätigbaren Zusatz 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 "Confirmable" aus ihrer Migrationsanleitung .
3. Generieren Sie die Geräteansichten mit einem der folgenden Befehle, damit Sie die Gerätemailer-Ansichten überschreiben können:
Rails generate devise:views # global
Rails generate devise:views users # scoped
Sie können jetzt die Mailer-Ansichten in devise/mailer/confirmation_instructions.html.erb
Oder users/mailer/confirmation_instructions.html.erb
Überschreiben, abhängig von Ihrer Einrichtung
4. Für die Entwicklung Umgebung fügen Sie die folgenden Konfigurationszeilen in /config/environments/development.rb
Hinzu
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 Produktion Umgebung in /config/environments/production.rb
Können 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 den Mailcatcher Gem, den Sie als SMTP-Server in der Entwicklung verwenden, und fangen alle eingehenden Mails ab und zeigen sie auf http://localhost:1080/
An:
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.
Ich glaube, Sie sollten es noch einmal bearbeiten ... Port-Nr. sollte in Anführungszeichen stehen .. wie folgt: -
:port => "587",
Ich hatte ein Problem in Rails 3.2.0/Ruby 1.9.2
Hast du dir den ActionMailer Rails Guide angesehen?