Django - отправка электронной почты в формате html (django-sesame )

Hy,

Я не знаю, как отправить электронное письмо в формате html. Я пробую все примеры, которые могу найти, но я не знаю, как реализовать в моем коде. Когда письмо приходит в почту, оно показывает весь html, а не только сообщение. Пожалуйста, помогите мне реализовать формат send as html в моем коде ниже. Спасибо

def email(request):

    campanii = Campanie.objects.order_by('-pub_date')

    if request.method == 'POST':
        form = EmailLoginForm(request.POST)
        if form.is_valid():
            email = form.cleaned_data['email'].lower()
            user = UserVot.objects.filter(email=email).first()
                

            if user is None: # daca userul nu exista cu acea adresa de email
              
                messages.error(request, "adresa de email nu este corecta sau valida")
                
                return render(request, 'loginvot/email.html', {'form' : form, 'campanii':campanii , 'error_message' : "adresa de email nu este corecta sau valida"} )
            
                   

            link += sesame.utils.get_query_string(user)


            user.email_user(
                subject="Link vot",
                 message="""\
                            <html >
                                <head>
                                    <meta charset="UTF-8">
                                </head>
                                <body>

                                    <p> Salutare,  <h4>{{user.username}}</h4></p><br>
                                    <p>Acceseaza link-ul de mai jos pentru a intra in sectiunea de vot "Ambasadorii Valorilor Profi"</p><br>
                                    {{link}}
                                </body>
                            </html>
                        """
            )
            
            return render(request, 'loginvot/email.html', {'campanii':campanii , 'error_succes' : "in maximum 1 minut vei primi pe adresa de email completata un link de accesare sesiune de vot"} )

        

    context = {'form' : EmailLoginForm, 'campanii' : campanii}
    
    return render(request, 'loginvot/email.html', context)

Решение оказалось намного проще, чем я предполагал. Я поместил email сообщение в отдельный файл (template_mail.html) и использовал функцию render_to_string, затем в user.email_user я добавил htmll_message, который принимает этот template_mail. Вот как теперь выглядит и работает код.

template_mail = render_to_string ('loginvot/template_email.html', {'user' : user, 'link' : link } )

            user.email_user(
                subject='Link vot Ambasadorii valorilor Profi',
                message=f"""some message""",
                html_message = template_mail

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