wie generieren link zur Abbestellung von E-Mail
Habe ich eine einfache rails-app, wo Benutzer senden kann, eine Masse E-Mail an 10 Personen. In dieser E-Mail möchte ich immer haben, einen link auf der Unterseite, die die end-Benutzer können klicken Sie auf Abmelden, sich aus den Meldungen. Ich habe nicht viel Ahnung wie ich das angehen sollte dieser.
kann es nur ein generischer link in der E-Mail, die den Benutzer klicken, dann geben Sie Ihre E-Mail-Adresse zum abbestellen selbst? Aber das problem mit diesem ist, dass einige andere Benutzer Abmelden könnte jemand anderes.
Ich würde gerne erzeugen ein spezifischer link für jede E-Mail, so dass, wenn der Benutzer darauf klickt, wird er automatisch entfernt, dass die Benutzer aus der Liste, anstatt dass der Benutzer zu tun, einige zusätzliche Arbeit.
Wo soll ich anfangen, um dies umzusetzen?
- Hallo @Patrick, können Sie teilen Ihre endgültige Lösung bei mir, da bin ich gleich, Danke
- Sie können versuchen, dieses tutorial, sehr hilfreich ngauthier.com/2013/01/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre unsubscribe-links könnte so Aussehen:
http://host/application/[email protected]&token=598bbdf39bc8f27b07fe85b6a7dd8decef641605
Generieren der token mithilfe der E-Mail-Adresse und ein magic token. Im Idealfall, die Sie verwenden würden, mit SHA256-HMAC, aber auch nur sha1 sollten 'gut genug':
Den
secret token
Teil wäre fest in Ihrer Anwendung, und die[email protected]
übereinstimmen muss die E-Mail-Adresse.Natürlich, wenn das geheime token bekommt, offenbart Sie sich wieder jemand Abmelden jeder. Sie könnten auch speichern pro-Benutzer-magic-Token, die in Ihrer Datenbank zur Validierung des tokens in URLs, das wäre nicht viel schwieriger als dies, und auf jeden Fall viel sicherer.
SecureRandom
, die klingt wie eine große Quelle für magic Token. Sie können entweder speichern Sie die token in Ihrem Benutzer-Modell oder erstellen Sie eine neue Tabelle mit nur-Benutzer-id und Abmelden Token, und füllen Sie es, wie Sie E-Mails senden.Wenn Sie ein Modell für EmailTemplate und ein Modell für die Abonnenten, dann ist dein code könnte so Aussehen:
so, könnte man ändern, um
Und dann die email_delivery ist before_create generiert einen token. A random password generator-pro email_delivery sollte gut sein. SecureRandom macht einen guten job bei random Token:
p SecureRandom.hex(10) #=> "52750b30ffbc7de3b362"
Gehören, die email_delivery token in Ihrem E-Mail, und führen Sie dann eine Suche basierend ausschließlich auf, die.