У моего приложения Django 10 000 пользователей, у всех есть электронные письма. Я хотел бы отправить сообщение по электронной почте всем из них, скажем, раз в месяц. Это сообщение может иметь несколько вложений в формате pdf.
Что я пробовал, так это использовать объект EmailMessage, чтобы отправить электронное письмо всем им. Я добавляю адреса электронной почты всех пользователей в компонент скрытой копии этого сообщения электронной почты перед отправкой.
recList = []
for recipient in rec:
reci = str.strip(str(recipient))
recList.append(reci)
message = (form.cleaned_data['subject'], form.cleaned_data['message'], '[email protected]', recList)
mail = EmailMessage(form.cleaned_data['subject'], form.cleaned_data['message'], '[email protected]', ['[email protected]'], 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()
более эффективным?