Python 2.4에서 smtplib 전송 시간 초과를 설정하는 방법은 무엇입니까?

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

  •  19-09-2019
  •  | 
  •  

문제

시간 초과가 제기되지 않기 때문에 이메일 전송이 실패 할 때 SMTPLIB가 내 프로그램을 연결하는 데 문제가 있습니다. 내가 사용하고있는 서버는 2.4보다 큰 파이썬을 가지지 않으므로 후기 버전의 Python에서 SMTP 생성자에게 타임 아웃 인수를 사용할 수 없습니다.

파이썬 2.4 문서는 SMTP 클래스에 '타임 아웃'주장이 없음을 보여줍니다.

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

그렇다면이 기능을 어떻게 시뮬레이션합니까?

도움이 되었습니까?

해결책

import socket
socket.setdefaulttimeout(120)

특정 소켓의 시간 초과가 변경되지 않는 한 2 분 후에 소켓 타임 아웃이됩니다 (Python 2.4의 SMTP가 후자를 수행하지 않는다고 생각합니다).

편집하다: 명백히 OP의 의견에 따라 이것은 TLS를 깨뜨립니다. 그래서 계획 B ... :

2.6의 smtplib 소스 파일을 잡고 2.4의 모듈로 백 포트하는 것은 어떻습니까? 너무 힘들지 않아야합니다 ... 그리고 시간 초과를 깨끗하게 지원합니다!-)

보다 여기...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top