Как установить тайм-аут отправки smtplib в Python 2.4?

StackOverflow https://stackoverflow.com/questions/1309991

  •  19-09-2019
  •  | 
  •  

Вопрос

У меня возникли проблемы с smtplib, связывающим мою программу при сбое отправки электронной почты, поскольку тайм-аут никогда не возникает.На сервере, который я использую, нет и никогда не будет версии Python выше 2,4, поэтому я не могу использовать аргумент тайм-аута для конструктора SMTP в более поздних версиях Python.

Питон 2.4 документы показывают, что класс SMTP не имеет аргумента «тайм-аут»:

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

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

Это было полезно?

Решение

import socket
socket.setdefaulttimeout(120)

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

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

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

Видеть здесь...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top