Как установить время отправки smtplib в Python 2.4? - PullRequest
3 голосов
/ 21 августа 2009

У меня проблемы с тем, что smtplib связывает мою программу при сбое отправки электронной почты, потому что время ожидания не увеличивается. Сервер, который я использую, не имеет и никогда не будет иметь python больше 2.4, поэтому я не могу использовать аргумент timeout для конструктора SMTP в более поздних версиях python.

Документы Python 2.4 показывают, что класс SMTP не имеет аргумента 'timeout':

class SMTP([host[, port[, local_hostname]]])

Так, как мне моделировать эту функциональность?

1 Ответ

6 голосов
/ 21 августа 2009
import socket
socket.setdefaulttimeout(120)

сделает любое время ожидания сокета через 2 минуты, если только не изменено время ожидания конкретного сокета (и я считаю, что SMTP в Python 2.4 не делает этого).

Редактировать : очевидно, для каждого комментария ОП это нарушает TLS, поэтому план Б ...:

Как насчет того, чтобы взять исходный файл smtplib версии 2.6 и перенести его как свой собственный модуль на свой 2.4? Не должно быть СЛИШКОМ тяжело ... и поддерживает тайм-аут чисто! -)

См. здесь ...

...