还有一个类似标题的问题:安全退订, 但是我的问题完全解决了另一个问题。
我正在尝试在网站上设置一个通知系统,它将根据网站上的不同事件向用户发送电子邮件,例如接收来自另一个用户的现场消息、购买您的产品的人、留下反馈等。 - 有很多事情可能会触发通知。用户可以从他们的帐户设置中选择他们希望接收电子邮件的确切事件。
我正在阅读 mailgun https://documentation.mailgun.com/best_practices.html#unsubscribe-handling的电子邮件最佳实践
我了解到
让您的收件人能够取消订阅电子邮件非常重要。首先,它是 CAN-Spam Act 的要求。其次,如果你不给他们这个选项,他们更有可能点击垃圾邮件投诉按钮,这比让他们退订造成的伤害更大。最后,许多 ESP 会寻找退订链接,如果没有这些链接,他们更有可能过滤您的电子邮件。
此外,来自关于取消订阅的 gmail 指南 https://support.google.com/mail/answer/81126?hl=en
用户必须能够通过以下方式之一取消订阅您的邮件列表:
电子邮件正文中的显眼链接将用户引导至确认其取消订阅的页面(除确认外,无需用户输入)。通过使用退订请求回复您的电子邮件。
所以,我确实希望在电子邮件中有取消订阅选项。我不太喜欢使用第二个选项(通过回复您的电子邮件),因为它可能存在一些技术困难(例如,我必须在回复电子邮件中使用通知类型,必须定期检查收件箱的电子邮件,也许还有其他我有没想到)。我正在考虑在电子邮件中添加一个取消订阅链接,因为他们的通知设置只有在他们登录后才能更改,这与 gmail 的no input from the user, other than confirmation, should be required
观点相矛盾。
所以,看起来我留下了一些“公共”网址来更改他们的通知设置。从我阅读并用于处理类似情况时开始 - 例如,在确认电子邮件或密码恢复时,我发送的电子邮件在 url 中仅包含随机生成的哈希(sha512),不会以任何方式泄露用户信息,这些信息将在更少的时间内过期超过 1 小时(我曾经放 15 分钟)。
现在,在取消订阅链接的情况下,即使我包含随机哈希(也可能是通知类型 ID),它与数据库中的用户相关联,因为它是公开的,如果电子邮件/链接意外共享或发布在某处,其他人可以编辑该用户的通知首选项。另一方面,为每个通知生成随机散列并保存在数据库中,也让它们在一段时间后过期对我来说听起来有点过头了,还考虑到当它过期时,如果用户点击旧电子邮件中的取消订阅链接,它将不起作用.
我在那里找不到任何有用的信息,所以我正在寻求一些关于如何正确和安全地处理用户退订的建议,特别是在与我类似的情况下。很感谢任何形式的帮助。
谢谢