Сообщение о проверке подлинности не отображается как гиперссылка в письме, а отображается как текст в письме. пожалуйста, помогите мне.
views.py
под моими представлениями у меня есть все мои представления для аутентификации пользователя, которые включают: signin, signup, signout и другие функциональные представления.
email_confirmation.html Вот html-шаблон, который я создал для отображения сообщения о подтверждении электронной почты пользователю.
{% autoescape off %}
Welcome to ADi meals mobile!
Hello {{name | capfirst}},
Please confirm your email by clicking on the link below.
Confirmation link: http://{{domian}} <a href= "{% url 'authentication:activate' uidb64=uid token=token %}">Click me</a>
{% endautoescape %}
Пожалуйста, если есть что-то еще, чем бы вы хотели поделиться с нами из проекта, дайте мне знать
Заранее спасибо.
Вы отправляете письмо в текстовом формате, электронные письма по умолчанию отправляются в текстовом варианте, и вам нужно использовать EmailMultiAlternatives
для отправки письма в формате HTML
from django.core.mail import EmailMultiAlternatives
from django.template.loader import get_template
subject = 'My Subject'
plaintext = get_template('email_templates/textmail_fallback.txt')
htmly = get_template('email_templates/htmlmail_prefered.html')
toList = ['test@mytest.com']
from_email = None
# from_email = 'MyDjangoSite@LocalHost'
# make email with text
msg = EmailMultiAlternatives(subject, plaintext.render(data), from_email, toList, reply_to=None, bcc=None, cc=None)
# Note: you can remove reply_to, bcc, cc, I'm just showing that those are options
# attach HTML email
msg.attach_alternative(htmly.render(data), 'text/html')
# send email
msg.send()
См: https://docs.djangoproject.com/en/4.1/topics/email/#sending-alternative-content-types
Редактировать!!!
Примечание: вы также можете просто изменить тип:
- Из доков, я пропустил это.
msg = EmailMessage(subject, html_content, from_email, [to])
msg.content_subtype = "html" # Main content is now text/html
msg.send()
Я думаю, что использование альтернативного метода - это все еще путь, поскольку он более универсален.