python smtplib - неблокирующая рассылка - PullRequest
2 голосов
/ 15 ноября 2011

Я использую smtplib для отправки писем довольно часто. Я использую свой собственный SMTP-сервер в качестве реле. Проблема в том, что каждый раз, когда устанавливается соединение smtplib.SMTP (...), весь процесс блокируется. Я новичок в Python (v3), и мне интересно, если smtplib уже поддерживает асинхронную рассылку. Я также попытался делегировать блокирующую рабочую нагрузку MTA, например sendmail, а затем запустить отдельные процессы в коде Python, чтобы он не блокировал поток. Я не уверен, что это хорошая практика. Что было бы хорошим решением для моего случая?

1 Ответ

1 голос
/ 30 января 2012

Вы можете сделать это с помощью очереди сообщений (например, как Rabbit MQ).Вместо того, чтобы отправлять электронное письмо напрямую, вы оставляете сообщение в очереди.Запись в очередь возвращается немедленно.Затем в фоновом режиме какой-то процесс очищает очередь и отправляет электронные письма.

Дополнительная информация здесь: http://www.rabbitmq.com/

...