Ứng dụng Django của tôi có 10.000 người dùng, tất cả đều có email. Tôi muốn gửi một email cho tất cả họ nói mỗi tháng một lần. Thông báo này có thể có một số tệp đính kèm pdf.Làm cách nào để gửi email đến 10.000 người dùng ở Django?
Điều tôi đã thử đang sử dụng đối tượng EmailMessage để gửi email đến tất cả các đối tượng đó. Tôi thêm tất cả địa chỉ email của tất cả người dùng vào thành phần bcc của EmailMessage này trước khi gửi.
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)
Tuy nhiên, khi tôi gửi email, Django phàn nàn rằng "Kết nối đã được đặt lại" và không gửi. Tôi giả định rằng kết nối máy chủ đã bị đóng.
Cách hiệu quả để gửi hàng loạt email bùng nổ ở Django là gì? send_mass_mail()
có hiệu quả hơn không?
Lưu ý rằng bạn quên kiểm tra cờ người nhận.hasSignedUpForEmail. Ngoài ra, ít hài hước hơn, tại sao bạn tạo ra 'thông điệp' và tại sao nó lại nằm trong vòng lặp, bị ghi đè mỗi lần? – Spacedman
bạn đã thử qua http://code.google.com/p/django-mailer/ – Ahsan