How to send html email with django with dynamic content in it?

后端 未结 7 1132
一向
一向 2020-12-04 11:09

Can anyone please help me sending html email with dynamic contents. One way is to copy the entire html code into a variable and populate the dynamic code within it in Django

相关标签:
7条回答
  • 2020-12-04 11:36

    If you want dynamic email templates for your mail then save the email content in your database tables. This is what i saved as HTML code in database =

    <p>Hello.. {{ first_name }} {{ last_name }}.  <br> This is an <strong>important</strong> {{ message }}
    <br> <b> By Admin.</b>
    
     <p style='color:red'> Good Day </p>
    

    In your views:

    from django.core.mail import EmailMultiAlternatives
    from django.template.loader import get_template
    
    def dynamic_email(request):
        application_obj = AppDetails.objects.get(id=1)
        subject = 'First Interview Call'
        email = request.user.email
        to_email = application_obj.email
        message = application_obj.message
    
        text_content = 'This is an important message.'
        d = {'first_name': application_obj.first_name,'message':message}
        htmly = FirstInterviewCall.objects.get(id=1).html_content #this is what i have saved previously in database which i have to send as Email template as mentioned above HTML code
    
        open("partner/templates/first_interview.html", "w").close() # this is the path of my file partner is the app, Here i am clearing the file content. If file not found it will create one on given path.
        text_file = open("partner/templates/first_interview.html", "w") # opening my file
        text_file.write(htmly) #putting HTML content in file which i saved in DB
        text_file.close() #file close
    
        htmly = get_template('first_interview.html')
        html_content = htmly.render(d)  
        msg = EmailMultiAlternatives(subject, text_content, email, [to_email])
        msg.attach_alternative(html_content, "text/html")
        msg.send()
    

    This will send the dynamic HTML template what you have save in Db.

    0 讨论(0)
提交回复
热议问题