Я пытаюсь реализовать регистрацию с подтверждением по электронной почте, используя Django, используя SendGrid в качестве поставщика электронной почты, мой код SignUpActivationView проверяет токен, а затем перенаправляет пользователя на домашнюю страницу, где с помощью сообщений отображается сообщение об успехе / ошибкеframework:
class SignUpActivationView(RedirectView):
redirect_url = reverse_lazy('link_list')
def dispatch(self, request, *args, **kwargs):
...
# if token is valid:
messages.error(self.request, 'Your account is now active.')
return HttpResponseRedirect(self.redirect_url)
# if token is invalid:
messages.error(self.request, 'Your account could not be activated.')
return HttpResponseRedirect(self.redirect_url)
Пока мой подход работает, пока я копирую и вставляю ссылку в своем браузере, если я нажимаю на нее, пользователь активируется, но сообщение об успехе не отображается в моем приложении.Я полагаю, что это связано с тем, что служба отслеживания кликов SendGrid закрывает мою ссылку:
Обходной путь, который я нашел, - сказать SendGrid, что он НЕ отслеживает ссылку, добавиви HTML-атрибут «clicktracking = off», недостатком является то, что я могу только сказать SendGrid, что он не отслеживает ссылки в HTML-версии моей электронной почты.В случае, если почтовый клиент пользователя решит открыть текстовую версию электронного письма, ссылка будет по-прежнему заключена в оболочку.
# solution: do not track clicks
# caveat: only works in HTML, not in plain text emails
<a clicktracking=off href="http://foo.bar">Confirmation link</a>
Таким образом, отслеживание ссылок является довольно обязательным месяцем для писем в виде простого текста.
Есть ли способ заставить фреймворк сообщений работать с отслеживанием ссылок?