Question

Je souhaite envoyer des e-mails aux membres de mon site qui doivent assister à une réunion (c'est-à-dire les invités), chacun avec (la même) pièce jointe PDF. Je fais cela avec la fonctionnalité par e-mail en vrac intégrée de Django, dans connection.send_messages(messages). Pour le moment, je fais ceci:

guests = Guest.objects.all()
connection = mail.get_connection()
connection.open()
messages = []
for guest in guests:
    msg = EmailMultiAlternatives(title, text_content, from_address, [guest.email], connection=connection)
    msg.attach_alternative(html_content, 'text/html')
    pdf_data = open(os.path.join(settings.MEDIA_ROOT, 'uploads/flyer.pdf'))
    msg.attach('Invitation Card.pdf', pdf_data.read(), 'application/pdf')
    pdf_data.close()
    messages.append(msg)
connection.send_messages(messages)
connection.close()

Maintenant, lorsque je le fais comme ça, le même fichier PDF sera chargé pour chaque e-mail, joint séparément, puis envoyé séparément pour chaque e-mail, comme s'il s'agissait de PDF différents. Si le fichier est de 10 Mo, ce 10 Mo sera téléchargé sur mon serveur de messagerie pour chaque invité, où il n'aurait pu être qu'une seule fois.

Donc la question est: Est-il possible de joindre un fichier à tous les e-mails à la fois, ne le téléchargez ainsi qu'une seule fois? Ou suis-je tout simplement mal le faire?

METTRE À JOUR:

Si je change la ligne d'attachement à ce qui suit:

msg.attach_file(os.path.join(settings.MEDIA_ROOT, 'uploads/flyer.pdf'))

Cela résoudrait-il mon problème?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top