Сообщение о проверке подлинности не отображается как гиперссылка в письме, а отображается как текст в письме. пожалуйста, помогите мне.

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()

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

Вернуться на верх