Как отправить почту из Django более чем 10 тысячам подписчиков, не вылезая из памяти

Я использую базовую версию сервера Webfaction для размещения своего веб-приложения, написанного на Python/Django. Я добавляю функцию рассылки новостей. Количество подписчиков более 10 тысяч и продолжает расти. Как отправить рассылку каждому из них. Это то, что я делаю прямо сейчас. Он может отправить около 200 электронных писем и выйти из памяти.

for subscriber in subscribers:
    send_email(title, content, 'sender', subscriber)

Как лучше всего справиться с этим на сервере общего хостинга с ограниченными ресурсами.

Спасибо


person pynovice    schedule 25.03.2014    source источник
comment
Используйте подход, основанный на очереди, и ежедневное задание, чтобы инициировать отправку электронных писем. github.com/dstegelman/django-mail-queue   -  person karthikr    schedule 25.03.2014
comment
Я пытался использовать django-mail-queue, но не смог легко настроить сельдерей на веб-фракции, поэтому не было асинхронных вызовов, поэтому процесс не удался.   -  person pynovice    schedule 25.03.2014


Ответы (1)


Вы захотите использовать службу для отправки электронных писем, множество преимуществ, которые вам не нужно создавать самостоятельно. Таким образом, вы сможете отправлять тысячи электронных писем, а вашему веб-серверу Django не придется замедляться и обрабатывать каждое электронное письмо. Вы также получите возможность отслеживать отказы и гораздо более надежную отправку.

SendGrid — с джанго-сендгрид

Есть несколько других сервисов, таких как Postmarkapp.

person stormlifter    schedule 25.03.2014
comment
Спасибо за быстрый ответ. SendGrid выглядит очень честно, но ничего не говорится о подходе на основе очереди. Что касается Postmarkapp, я не ищу платных решений. - person pynovice; 25.03.2014
comment
Чтобы поставить электронные письма в очередь, вам нужно будет использовать систему задач для Django, например Celery (pypi.python .org/pypi/django-celery), а затем используйте Django-Post-Office (github. com/ui/django-post_office), чтобы ставить электронные письма в очередь и управлять ими с помощью шаблонов. - person stormlifter; 26.03.2014
comment
Mailgun (mailgun.com) — еще один поставщик услуг. Вы можете использовать их сервис для отправки до 10000 писем в месяц бесплатно. Если вы отправляете больше писем, чем это, плата добавляется за каждое письмо. - person HAL; 26.03.2014