Pregunta

Quiero enviar correos electrónicos a los miembros de mi sitio que asistirán a una reunión (es decir, invitados), cada uno con (lo mismo) adjunto PDF. Estoy haciendo esto con la funcionalidad de correo electrónico a granel incorporada de Django, en connection.send_messages(messages). En el momento en que estoy haciendo esto:

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()

Ahora, cuando lo hago así, se cargará el mismo archivo PDF para cada correo electrónico, adjunto por separado, y luego se enviará por separado para cada correo electrónico, como si fuera diferente PDF. Si el archivo es de 10 MB, ese 10 MB se cargará en mi servidor de correo para cada invitado, donde podría haber estado solo una vez.

Entonces la pregunta es: ¿Es posible adjuntar un archivo a todos los correos electrónicos a la vez, por lo tanto, solo cargarlo una vez? ¿O simplemente lo estoy haciendo mal?

ACTUALIZAR:

Si cambio la línea de fijación a lo siguiente:

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

¿Eso resolvería mi problema?

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top