Чтобы создать HTML-шаблон с электронной почтой Django, вы можете воспользоваться несколькими способами. Вот некоторые из них:
Метод 1: использование встроенного класса EmailMessage в Django
- Создайте файл HTML-шаблона с нужным содержанием электронного письма. Например, вы можете создать файл с именем
email_template.htmlи определить структуру и содержимое HTML. - В вашем представлении или функции Django импортируйте необходимые модули:
из django.core.mail import EmailMessage - Создайте экземпляр объекта
EmailMessageи задайте тему, текст, отправителя и получателя(ов), используя соответствующие методы. Например:email = EmailMessage( 'Subject of the email', 'Text content of the email', 'sender@example.com', ['recipient@example.com'] ) - Прикрепите HTML-шаблон к электронному письму с помощью метода
EmailMessage.attach_file(). Например:email.attach_file('path/to/email_template.html') - Отправьте электронное письмо с помощью метода
send():email.send()
Метод 2: использование встроенного класса EmailMultiAlternatives в Django
- Создайте файл шаблона HTML, как указано в методе 1.
- Импортируйте необходимые модули:
из django.core.mail import EmailMultiAlternatives - Создайте экземпляр объекта
EmailMultiAlternativesи задайте тему, текст, отправителя и получателя(ов), используя соответствующие методы. Например:email = EmailMultiAlternatives( 'Subject of the email', 'Text content of the email', 'sender@example.com', ['recipient@example.com'] ) - Прикрепите HTML-шаблон к электронному письму с помощью метода
attach_alternative(). Например:email.attach_alternative('<p>HTML content of the email</p>', 'text/html') - Отправьте электронное письмо с помощью метода
send(), как показано в методе 1.
Метод 3. Использование рендеринга шаблонов Django
- Создайте файл шаблона HTML, как указано в методе 1.
- Импортируйте необходимые модули:
из django.core.mail import send_mail - В вашем представлении или функции Django используйте рендеринг шаблонов Django, чтобы преобразовать HTML-шаблон в строку. Например:
from django.template.loader import render_to_string html_content = render_to_string('email_template.html', {'context_variable': 'value'}) - Используйте функцию
send_mail()для отправки электронного письма, указав тему, текст, отправителя, получателя(ов) и отображаемый HTML-контент. Например:send_mail( 'Subject of the email', 'Text content of the email', 'sender@example.com', ['recipient@example.com'], html_message=html_content )