Как отправить распечатку в pdf по почте - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь создать файл pdf из шаблона HTML с помощью пакета Weasyprint python, и мне нужно отправить его по электронной почте, используя.

Вот что я пробовал:

views.py:

       user_info = {
            "name": 'nadjib',
        }
        html_string = render_to_string('Proformas/command.html')

        html = HTML(string=html_string,base_url=request.build_absolute_uri())
        # html.write_pdf(target='/tmp/mypdf.pdf');

        fs = FileSystemStorage('/tmp')
        with fs.open('mypdf.pdf') as pdf:
          response = HttpResponse(pdf, content_type='application/pdf')
          response['Content-Disposition'] =  'filename="Commande.pdf"'
          pdf = weasyprint.HTML(string=html_string, base_url=request.build_absolute_uri()).write_pdf(
              stylesheets=[weasyprint.CSS(string='body { font-family: serif}')])
          to_emails = ['nadjzdz@gmail.com']
          subject = "SH INFOR FACTURE"
          email = EmailMessage(subject, body=pdf, from_email='attaazd@gmail.com', to=to_emails)
          email.attach("Commande".format(user_info['name']) + '.pdf', pdf, "application/pdf")
          email.content_subtype = "pdf"  # Main content is now text/html
          email.encoding = 'us-ascii'
          email.send()
        return response

PDF-файл успешно обработан, но не отправлен по почте?

...