rails 3 + entwickeln: wie ändert man den mailer Methode zur Bestätigung E-Mails an Benutzer hinzufügen die zweite E-Mail-Adresse
Hintergrund: In unserer app haben wir oft ein Vertriebsmitarbeiter tun Sie das setup für unsere Kunden mit dem Verkäufer computer (oft Kunden haben keinen Zugriff auf Ihre E-Mail-an die Zeit, die wir (set up). Also denken wir, um ein Feld hinzuzufügen, um das Gerät Anmeldeformular für die Vertriebsmitarbeiter der E-Mail-Adresse und die bestätigen-link geht AUCH an, dass die E-Mail-Adresse.
Frage: gibt es eine Möglichkeit zu sagen, zu entwickeln bcc (oder cc) die erste Bestätigungs-E-Mail (nur die erste Bestätigungs-E-Mail) ein (optional) "backup_email" E-Mail-Adresse, die Sie ebenfalls auf der Registrierung eines neuen Benutzers form?
Alternativ, gibt es eine Möglichkeit, um 'deaktivieren' der Bestätigungs-E-Mail-Prozess aber NUR, wenn ein bestimmter code eingegeben wird, in das Feld Registrierung?
Ich wissen, wie fügen Sie ein weiteres Feld, um das Gerät Anmeldeformular, aber ich sehe nicht, wie/wo ändern das Gerät mailer-code, so dass, wenn Sie eine Bestätigungs-E-Mail wird an die "E-Mail" - Adresse, es geht AUCH um die "backup_email" - Adresse (sofern vorhanden, manchmal ist es leer).
Dank Johnny Gras!
Habe ich rails generate mailer CustomerUserMailer
und Hinzugefügt
#config/initializers/devise.rb
config.mailer = "CustomUserMailer"
meine custom mailer aussieht:
# app/mailers/customer_user_mailer.rb
class CustomUserMailer < Devise::Mailer
def headers_for(action)
headers = {
:subject => translate(devise_mapping, action),
:from => mailer_sender(devise_mapping),
:to => resource.email,
:cc => resource.backup_user_email(action),
:template_path => template_paths
}
end
end
Dann zog ich die 3 mailer-Vorlagen AUS views/devise/mailer
zu views/customer_user_mailer
(sonst werden die E-Mails sind leer)
Dann habe ich noch eine Methode, um meine User
Modell namens backup_user_email()
dass die Rendite der 'backup' E-Mail-Adresse (falls vorhanden) auf der Grundlage der Daten in den Benutzer-Datensatz und die Aktion. Der einzige "trick" ist, dass bei der Prüfung der action
es ist nicht action == "confirmation_instructions"
es ist action == :confirmation_instructions
.
InformationsquelleAutor jpwynn | 2011-06-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen Weg, es zu tun wäre, um das überschreiben der
headers_for
Aktion in Entwickeln::MailerUnd sagen, entwickeln, nutzen Sie Ihre mailer:
Würden Sie tatsächlich haben, um einen mailer, Folgen Sie dieser Anleitung machen Sie aber eine Unterklasse von
Devise::Mailer
statt.PERFEKT, VIELEN DANK. Ich habe dokumentiert die änderungen am Ende meiner ursprünglichen Frage, da ich auch erforderlich, um die mailer-erb-templates an die neue Ansicht
Froh, dass Sie es geschafft habe 🙂
In der letzten version Entwickeln, diese Antwort würde nicht funktionieren. Ich werde senden Sie eine neue ein.
InformationsquelleAutor David
Nur für den Fall, jemand habe hier durch Google in der neuesten version Entwickeln,
header_for
nimmt zwei Parameter. So würde der code sein müssen:Dass möglicherweise nicht der beste Weg, es zu tun, aber zumindest vermeidet es Fehler.
Nevermind - es stellt sich heraus, dass, wenn ich ändern :template_path:
:template_path => "devise/mailer"
ich kann die Vorlagen, die ich bereits erstellt.InformationsquelleAutor Bryce
Können Sie diesen code verwenden, die ist viel sauberer und einfacher
Mit Hash übergeben
merge!
Methode können Sie hinzufügen oder ändern E-Mail-Header, die Sie wünschen.InformationsquelleAutor Nick Kugaevsky
Ihre Antwort für mich gearbeitet. Ich danke Ihnen so sehr.
Hatte ich ein Szenario, wobei, ich war erforderlich, anpassen, entwickeln zu:
1) senden Sie eine Anmelde Bestätigung E-Mails in BCC zu verschiedenen E-Mails basierend auf die Umwelt.
2) E-Mails Hinzugefügt werden sollen BCC nur für die Anmeldung Bestätigungs-mails.
Erreichen, dass ich im Vergleich Werte für action-argument, wie gezeigt, in der folgende Codeausschnitt:
InformationsquelleAutor Sahil