Отправка 1000+ писем в Джанго - PullRequest
0 голосов
/ 29 марта 2011

Вот мои настройки прямо сейчас:

connection = mail.get_connection()
maillist = []

# my real setup is a little more complex for-loop, but basicly I add all recipients to a list. 
for person in object_list:
    mail_subject = "Mail subject here"
    mail_body = "Mail body text...bla bla"
    email_sender = "me@example.com"
    maillist.append((mail_subject, mail_body, email_sender, [person.email]))

#send_mass_mail wants a tuple, so we convert the list
mailtuple = tuple(maillist)
mail.send_mass_mail(mailtuple, fail_silently=False, connection=connection)

Однако forloop итерирует более 1000+ объектов / лиц, и когда я пытаюсь использовать этот метод, я могу отправить 101 электронное письмо, а затем оно останавливается.Никаких ошибок (как я вижу) нигде нет.

Один из разработчиков упомянул, что, возможно, размер POST слишком велик?Есть идеи от SO-сообщества?

Ответы [ 3 ]

2 голосов
/ 29 марта 2011

Ваш SMTP-сервер, вероятно, имеет некоторые ограничения на отправку.Например, я считаю, что Gmail ограничивает исходящую почту до 100 получателей.

1 голос
/ 30 марта 2011

Поскольку вы упомянули ограничение POST - вы отправляете электронные письма в виде?Мне интересно, как вы обрабатываете отмененные запросы в вашей настройке.

Я использую команду управления для отправки более 1000 рассылок.Но вместо send_mass_mail я использую обычный метод send в цикле.На отправку писем уходит около 5 минут (точного количества нет), и я еще не сталкивался с какими-либо серверными ограничениями.

Я планирую переключиться на сельдерей для обработки отправки через Интернет.интерфейс.Возможно, вы захотите взглянуть на это, если вы еще этого не сделали.

http://celeryproject.org/

1 голос
/ 29 марта 2011

Как предположил Мика, есть большая вероятность того, что вы превысите ограничения сервера.

Как правило, при работе с массовой почтой всегда полезно ограничить отправку.Выполнение 50 писем каждые 5 секунд в течение 300 секунд бьет 3000 писем одновременно по многим практическим причинам, включая ограничения сервера smtp.

...