/ / Wysyłanie wiadomości e-mail w formacie HTML w Django [duplicate] - python, html, django, email

Wysyłanie e-maila w formacie HTML w Django [duplicate] - python, html, django, email

Odkąd pojawił się Django 1.7, sytuacja nieco się zmieniła. Próbuję użyć "send_mail", aby wysłać wiadomość e-mail w formacie HTML.

Chcę wysłać wiadomość e-mail z podziękowaniami użytkownikom po zarejestrowaniu się w mojej witrynie.

Używam

subject = "Thank you from ******"
message = "text version of HTML message"
from_email = my email address
to_list = users email address
html_message= really long set of html code

send_mail(subject,message,from_email,to_list,fail_silently=True,html_message=html_message)

Czy jest możliwe zapisanie html jako pliku na serwerze, a następnie przekonwertowanie go na ciąg znaków, aby mógł zostać wprowadzony do "html_message"?

Odpowiedzi:

10 dla odpowiedzi № 1

Tak, możesz. W moim własnym projekcie używam następującego kodu, aby zrobić to samo:

from django.template import loader

html_message = loader.render_to_string(
"path/to/your/htm_file.html",
{
"user_name": user.name,
"subject":  "Thank you from" + dynymic_data,
//...
}
)
send_mail(subject,message,from_email,to_list,fail_silently=True,html_message=html_message)

A plik HTML wygląda następująco:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1>{{ user_name }}</h1>
<h2>{{ subject }}</h2>
</body>
</html>