【发布时间】:2023-04-02 04:30:01
【问题描述】:
我的 Django 应用程序有 10,000 个用户,所有用户都使用电子邮件。我想向他们所有人发送一封电子邮件,比如每月一次。此邮件可能包含一些 pdf 附件。
我尝试使用 EmailMessage 对象向所有人发送电子邮件。我在发送之前将所有用户的电子邮件地址添加到此 EmailMessage 的密件抄送组件中。
recList = []
for recipient in rec:
reci = str.strip(str(recipient))
recList.append(reci)
message = (form.cleaned_data['subject'], form.cleaned_data['message'], 'emailAdmin@yahoo.com', recList)
mail = EmailMessage(form.cleaned_data['subject'], form.cleaned_data['message'], 'email_manager@mysite.org', ['email_list@mysite.org'], recList)
num_attachments = 0
if form.cleaned_data['attachment'] != None:
email_attachment = EmailAttachment(
document_name = form.cleaned_data['attachment'].name,
email_message = email,
document = form.cleaned_data['attachment'],
)
email_attachment.save()
mail.attach_file(settings.MEDIA_ROOT + "/" + email_attachment.document.name)
mail.send(fail_silently=False)
但是,当我发送电子邮件时,Django 抱怨“连接已重置”并且没有发送。我假设服务器连接已关闭。
在 Django 中发送大量电子邮件的有效方法是什么? send_mass_mail() 会更有效吗?
【问题讨论】:
-
请注意,您忘记检查 recipient.hasSignedUpForEmail 标志。另外,不那么幽默的是,你为什么要创建“消息”,为什么它在循环中,每次都被覆盖?
标签: django django-email django-mailer