Invia e -mail di massa a Django con lo stesso allegato
-
30-10-2019 - |
Domanda
Voglio inviare e -mail ai membri del mio sito che devono partecipare a una riunione (ad es. Ospiti), ognuno con (lo stesso) allegato PDF. Lo sto facendo con la funzionalità di posta elettronica integrata di Django, in connection.send_messages(messages)
. Al momento sto facendo questo:
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()
Ora, quando lo faccio in questo modo, lo stesso file PDF verrà caricato per ogni e -mail, allegato separatamente, quindi inviato separatamente per ogni e -mail, come se fosse PDF diversi. Se il file è 10 MB, quel 10 MB verrà caricato sul mio server di posta per ogni singolo ospite, dove avrebbe potuto essere solo una volta.
Quindi la domanda è: È possibile allegare un file a tutte le e -mail contemporaneamente, anche caricandolo solo una volta? O sto semplicemente facendo male?
AGGIORNARE:
Se cambio la riga di allegato in quanto segue:
msg.attach_file(os.path.join(settings.MEDIA_ROOT, 'uploads/flyer.pdf'))
Questo risolverebbe il mio problema?
Nessuna soluzione corretta