我想在发送给用户的电子邮件中添加退订链接。我不确定如何实现。我希望用户无需登录即可退订。有关如何实现此目的的任何建议将不胜感激。谢谢
答案 0 :(得分:0)
我假设您知道如何使用django和其他基本内容发送电子邮件。
对于发送给他们的每封电子邮件,您都必须首先构建退订链接,如下所示。请注意,以下代码具有url模式,以及一个采用uuid字段的模型(具体来说是uuid4,因为这是最安全的字段)。您要这样做的原因是,随机的人无法去YourWebsite.com/unsub_email/1, /2, /3, /4, etc,
并通过猜测数字来尽可能多地取消预订。通过按照我的方式进行操作,大约有100的机会中有1,有50+的零后他们甚至会得到1。所以更安全。
def send_user_an_email(id_of_your_object):
users_email = UsersEmail.objects.get(id=id_of_your_object)
unsub_link = 'https://www.YourWebsite.com/unsub_email/{}/{}/'.format(users_email.id, users_email.random_uuid)
subject = 'Your subject line.'
message = 'Your message body.\n\nGo here to unsubscribe: {}'.format(unsub_link)
mail_sent = send_mail(subject, message, 'DoNotReply@YourWebsite.com', [users_email.users_email_char_field])
return mail_sent
然后,您只需编写一个函数,让他们单击该页面上的按钮,它们便会被取消隐藏,否则您就可以这样做。更为安全的选择是向他们显示有效的取消订阅页面,但让他们再次输入其电子邮件,但不向他们显示与有效网址格式相关的电子邮件。对于想要编写错误脚本的人来说,取消订阅列表中的每个人都变得困难得多。