Domanda

sto avendo problemi con smtplib legare il mio programma quando l'invio di email non riesce, a causa di un timeout non viene mai sollevata. Il server che sto utilizzando non lo fa e non avrà mai pitone maggiore di 2.4, quindi non posso fare uso dell'argomento timeout al costruttore SMTP nelle versioni successive di pitone.

Python 2.4 di docs mostrano che l'SMTP classe non ha l'argomento 'timeout':

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

Quindi, come faccio a simulare questa funzionalità?

È stato utile?

Soluzione

import socket
socket.setdefaulttimeout(120)

renderà ogni momento presa dopo 2 minuti, a meno che il timeout del socket specifica è cambiato (e credo SMTP in Python 2.4 non fa il secondo).

Modifica : a quanto pare per il commento di OP questo rompe TLS, così, piano B ...:

Che dire di afferrare 2.6 del file sorgente smtplib e backport come il proprio modulo al 2.4? Non dovrebbe essere troppo difficile ... e lo fa timeout supporto in modo pulito -!)

qui . ..

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top