取消订阅功能的正确实现方式


Proper way to implement unsubscribe function

我目前正在使用PHPMailer向邮件列表发送电子邮件,但我希望创建一个取消订阅功能,因为我凭良心不能不提供该选项。

我面临的唯一问题是以安全的方式做这件事。到目前为止,我一直在想的是在我的网站上添加一个href,链接到这样的页面http://example.com/unsubscribe.php?email=useremail@test.com,但使用这种方法,任何人都可以删除他们想要的任何电子邮件,或者删除整个邮件列表。我不知道如何绕过这个问题。我的MySQL数据库只包含一个唯一的电子邮件ID,这只是他们在数据库中的位置(添加的第一封电子邮件的ID为1,第二封电子邮件的ID2,依此类推)和电子邮件地址本身的列。

我会做一些类似的事情

http://example.com/unsubscribe.php?email=useremail@test.com&令牌=XXXXXXXXXXXXXX

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

如果令牌有效,则处理订阅。

附言:我不确定你为什么投了反对票,我想是因为你没有意识到法律要求你提供退订。