Django 2 электронная почта отписаться ссылку - PullRequest
0 голосов
/ 27 августа 2018

Я хочу добавить ссылку для отмены подписки в электронных письмах, отправляемых пользователю.Я не уверен, как этого добиться.Я хочу, чтобы пользователь мог отказаться от подписки без необходимости входа в систему. Будем благодарны за любые предложения о том, как этого добиться.Спасибо

1 Ответ

0 голосов
/ 23 сентября 2018

Я предполагаю, что вы знаете, как отправить электронное письмо с помощью django и других базовых вещей.

Для каждого отправляемого им электронного письма сначала необходимо создать ссылку для отмены подписки, как показано ниже.Обратите внимание, что у следующего есть шаблон URL и модель, которая принимает поле uuid (точнее, uuid4, потому что это самый безопасный).Причина, по которой вы хотите сделать это таким образом, заключается в том, что случайные люди не могут перейти на YourWebsite.com/unsub_email/1, /2, /3, /4, etc, и отписать как можно больше людей, угадав число.Делая это так, как я показываю, есть что-то вроде шанса 1 из 100 с примерно 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

Тогда вы просто пишетефункция, позволяющая им нажимать кнопку на этой странице, и они отрываются, или, в противном случае, вы хотите это сделать.Еще более безопасным вариантом было бы показать им действительную страницу неподтвержденной информации, но заставить их снова печатать свою электронную почту, но не показывать им электронную почту, связанную с действительным шаблоном URL.Из-за этого дополнительного шага кому-то, кто захочет написать плохой сценарий, будет намного сложнее удалить всех из вашего списка.

...