我想向我的网站成员发送电子邮件,他们将参加会议(即客人),每个人都带有(相同的)PDF 附件。我正在使用 Django 的内置批量电子邮件功能执行此操作,在connection.send_messages(messages)
. 目前我正在这样做:
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()
现在,当我这样做时,将为每封电子邮件加载相同的 PDF 文件,单独附加,然后为每封电子邮件单独发送,就好像它是不同的 PDF 一样。如果文件是 10MB,那么这 10MB 将被上传到我的邮件服务器,用于每位客人,而它可能只上传一次。
所以问题是:是否可以一次将文件附加到所有电子邮件,从而也只上传一次?还是我只是做错了?
更新:
如果我将附加行更改为以下内容:
msg.attach_file(os.path.join(settings.MEDIA_ROOT, 'uploads/flyer.pdf'))
那会解决我的问题吗?