Wie hinzufügen von one-click-Abmelde-Funktionalität, um E-Mail-Newsletter zu erhalten?
Möchte ich anpassen, den "Abmelden" - links in unseren E-Mail-Newsletter, so dass Sie entfernen Sie den Empfänger mit einem einzigen Klick. Jetzt Sie nur eine generische Seite, wo der Benutzer zur Eingabe Ihrer E-Mail-Adresse ein und wählen Sie die newsletter aus, die Sie möchten, zu kündigen.
Wie es scheint, dies sollte ziemlich einfach sein, also einfach nur die E-Mail-Adresse und newsletter-id als url-Parameter. Aber als ich sah auf Beispiele aus den Listen, die ich abonniert, viele nicht erkennbar-Adresse und die meisten scheinen mit dem, was aussieht wie guids und/oder Hash-Werte in die Parameter. Ich vermute, dass ich sollte sein hashing oder sonst Codierung einige Informationen, um zu verhindern, dass bösartige Missbrauch von den Abmelde-Formular.
Also meine Frage ist wirklich über best practices und nicht das Rad neu erfinden. Gibt es einen standard-Weg zu handle diese Art von Funktionalität? Genauer gesagt, gibt es Gründe, nicht an den Empfänger der E-Mail-Adresse als Teil der url? Dies scheint einfach genug, dass es fühlt sich wie ich ' m Blick auf etwas.
InformationsquelleAutor der Frage Matt | 2009-08-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie Kodieren eine URL etwa so:
Wo
<signature>
ist so etwas wieHMAC(secretkey, "<encoded-email>/<expiration>")
. Codierte E-Mail kann nur ein URL-Kodierung der E-Mail, oder es kann ein tatsächlich verschlüsselt (AES+CBC+Base64 oder ähnliches) version der E-Mail. Mit vollständiger Verschlüsselung würde scheinen, zu sein wenig, obwohl - da die person, die diese hat Ihre eigene E-Mail-Adresse sowieso.Diese Signatur-Schema hat den Vorteil, nicht erst irgendwelche Datenbank-Speicherung, während verbleibenden sicher vor böswilligen versuchen, jemand Abmelden.
Alternativ (oder zusätzlich zu den oben genannten) können Sie senden eine Bestätigungs-E-mail aus, um zu bestätigen die Absicht des Benutzers. Dies vermeidet Probleme, wenn der Benutzer leitet die E-Mail.
InformationsquelleAutor der Antwort bdonlan
Wenn Ihr die Mailinglisten-software verwendet, alte-Schule-best-practices, sollte es ein 'unsubscribe' E-Mail-Adresse - E-Mail an diese Adresse von der Adresse, die Sie wollen, um sich abzumelden (ggf. mit einem festen Betreff-Zeile) in der Regel funktioniert der trick (zusammen mit Versendung einer Bestätigungs-E-Mail). In diesem Fall, indem eine korrekt formatierte 'mailto' - link sollte den trick tun.
InformationsquelleAutor der Antwort Harper Shelby
Zwei Gründen für nicht mit einem nur-text-E-Mail-Adresse in die Abfrage in der URL sind, dass Sie nicht möchten, dass böswillige Benutzer Abmelden Ihre Kunden von Ihrer mailing-Liste.
Das zweite, das würde wahrscheinlich nur Auswirkungen auf die Unternehmen senden Millionen von e-mails, machen es schwieriger für Spammer zu 'schnuppern', die für eine echte E-Mail-Adressen.
InformationsquelleAutor der Antwort Phil Carter
Es ist nicht sicher, einbetten und E-Mail Adressen in einen newsletter. Nicht sicher über Ihnen, aber viele Newsletter landete in einigen Archiv auf dem web. Es gibt spam-bots, die speziell entwickelt, um Ernte-Adressen von mailing-Listen-Archive.
E-Mail ist ein sicherer Einsatz der Technologie. Einrichten eines E-mail-Konto für Abmelden und erhalten Sie E-Mail-Adresse aus dem mail-Header. Wenn Sie eine Mailinglisten-software, es sollte in der Lage dies bereits.
InformationsquelleAutor der Antwort ZZ Coder
Habe ich irgendwie einfache Methode in einer web-Anwendung, aber ich bin mir nicht sicher, ob es effizient und sicher genug für andere web-app zugeschnitten ist .
In meiner app, wenn der Benutzer klicken Sie auf den Abmelde-link, den ich weiterleiten auf eine Seite auf meinem server mit einem Query-string, der eine Kombination von Benutzer-E-Mail-Adresse und die eindeutige id in meine
DB
(verschlüsselt vorzugsweise).Dann in der page-load-Funktion auf meiner Seite, zuerst habe ich
decrypt
dieEmail address
und dann ich überprüfen, um zu sehen, ob die E-Mail-Adresse nicht in meine DB und dann, wenn die Antwort WAHR ist, überprüfe ich, wenn dieID
und dieEmail address
Zusammenhang stehen, und schließlich Entferne ich den Benutzer gemäß einem anderen Kriterium.Ich denke, es würde den job tun, ohne zusätzliche Dateneingabe für die
DB
.Nun bin ich auf der Suche nach einem Weg, um herauszufinden, ob die person, die auf den link klickten, ist die erste hand, die person, die ich habe die E-Mail senden oder die E-Mail weitergeleitet wurde, um ihm/Ihr. So, dass niemand anderes als die real-user kann (mindestens leicht) Abmelden ihm/Ihr!
[Fragen, für eine Sicherheitsabfrage vor Finalisierung der Abmeldung Prozess ist eine Sache, die ich dachte, über die bisher]
InformationsquelleAutor der Antwort sahar aghakasiri
Gebe ich jede email, die ich senden Sie eine ID, dann schauen die E-Mail-ID, wenn Sie klicken Sie auf Abmelden.
http://www.foo.com/unsubscribe.asp?ID=1234
Und dann Abmelden die E-Mail-Adresse, die ich geschickt 1234.
InformationsquelleAutor der Antwort Jim