Мое приложение Django имеет 10 000 пользователей, у всех есть электронная почта. Я хотел бы отправлять всем им сообщение по электронной почте, скажем, раз в месяц. Это сообщение может содержать несколько вложений в формате pdf.
Я пробовал использовать объект EmailMessage для отправки сообщения всем пользователям. Перед отправкой я добавляю адреса электронной почты всех пользователей в компонент bcc этого 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()
быть более эффективным?