2015-11-19 1 views
1

В настоящее время я использую PHPMailer для отправки электронной почты в список рассылки, однако я ищу, чтобы создать функцию отмены подписки, потому что я не могу с чистой совестью не дать вариант.Правильный способ реализовать функцию отмены подписки

Единственная проблема, с которой я столкнулся, делает это безопасным образом. То, что я имел в виду до сих пор, это добавить href обратно на мой сайт, который будет ссылаться на страницу, например http://example.com/[email protected], но с помощью этого метода любой может удалить любое электронное письмо, которое они хотят, или удалить весь список рассылки. Я не уверен, как я могу обойти эту проблему. Моя база данных MySQL содержит только уникальный идентификатор электронной почты, который является только их позицией в базе данных (первое добавленное электронное письмо имеет идентификатор 1, а второе имеет идентификатор 2 и т. Д.) И столбец для самого адреса электронной почты.

+0

Создайте уникальный одноразовый токен (также истекшее время) и используя этот токен, предназначенный для электронной почты пользователя в поле query/column. Существует множество решений. –

+0

этот вопрос и ответы, например http://stackoverflow.com/questions/17142935/how-to-generate-unsubscribe-link-for-newsletter, возможно, даже дубликат для этого вопроса и http://stackoverflow.com/questions/3387229/how-to-generate-link-for-unsubscribing-from-email и http://stackoverflow.com/questions/1240915/how-to-add-one-click-unsubscribe-functionality-to-email-newletters –

+0

Лично , Я вроде как этот ответ http://stackoverflow.com/a/17143081/, где вы могли бы попросить пользователя нажать на ссылку, свой секретный ключ, который вы действительно должны добавить в свою таблицу. –

ответ

2

Я хотел бы сделать что-то вроде этого

http://example.com/[email protected]&token=XXXXXXXXXXXXXXX

$_GET["token"] = hash_hmac('sha256', $email.$email_id, $site_salt); 

если маркер действителен, то процесс подписки.

P.S. Я не уверен, почему у вас есть нисходящая линия, по моему предположению, потому что вы не понимали, что вам юридически требуется предоставить отписаться.

+0

Это действительно полезно, спасибо! У меня есть функция отмены подписки, но она довольно неуклюжая (это просто почтовый ящик с подписчиком). – Marcelo