Как в Django отправить письмо 10 000 пользователям?

Мое приложение 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() быть более эффективным?

7
задан dangerChihuahua007 28 December 2011 в 17:23
поделиться