Python을 사용하여 생성된 이메일이 mailq에 멈춰 시간 초과됨(Debian)

Python을 사용하여 생성된 이메일이 mailq에 멈춰 시간 초과됨(Debian)

내 Debian 컴퓨터에서 이메일을 보내고 싶습니다. 대부분의 Python smtplib예제 처럼 이메일이 내 Gmail 계정에서 오는 것을 원하지 않습니다 .

ISP에 전화해서 포트 25에 대해 물었고 그들은 (포트 587) 또는 (SSL의 포트 465)를 사용하라고 말했습니다. 두 포트 모두 동일한 결과를 가지며 이메일이 생성되지만 전달되지 않습니다. Python에서 포트 465를 사용 하려고 하면 smtplib.SMTP_SSL다음 오류가 발생합니다.

  File "emailer.py", line 32, in <module>
    smtp = smtplib.SMTP_SSL("localhost", 465)
  File "/usr/lib/python2.7/smtplib.py", line 792, in __init__
    SMTP.__init__(self, host, port, local_hostname, timeout)
  File "/usr/lib/python2.7/smtplib.py", line 256, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/lib/python2.7/smtplib.py", line 316, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/usr/lib/python2.7/smtplib.py", line 798, in _get_socket
    new_socket = ssl.wrap_socket(new_socket, self.keyfile, self.certfile)
  File "/usr/lib/python2.7/ssl.py", line 891, in wrap_socket
    ciphers=ciphers)
  File "/usr/lib/python2.7/ssl.py", line 566, in __init__
    self.do_handshake()
  File "/usr/lib/python2.7/ssl.py", line 788, in do_handshake
    self._sslobj.do_handshake()
socket.error: [Errno 104] Connection reset by peer

내 Python 이메일 프로그램 코드:

to_addr = "[email protected]"
from_addr = ""
body_text = "auto email test"
message = MIMEText(body_text)
message["Subject"] = "subject"
message["From"] = from_addr
message["To"] = to_addr
message["Return-Path"] = "<>"
message["Auto-Submitted"] = "auto-generated"
smtp = smtplib.SMTP("localhost", 587)
try:
    #smtp.starttls()
    print("sending email")
    smtp.sendmail(from_addr, [to_addr], message.as_string())  #body_text)
    print("sent email")
except Exception, em:
    print("ERROR: " + str(em) )
except SMTPException, em:
    print("ERROR: " + str(em) )
smtp.quit()

이 코드는 오류 없이 실행됩니다. 메일 대기열을 확인해 보니 메일이 거기에 있고 아무데도 가지 않았습니다.

root@lappy:/home/user/raid# mailq
 0m   482 1aLBNr-0005Fj-Ui <[email protected]>
          [email protected]

/var/log/exim4/mainlog이러한 유형의 메시지는 메시지를 보내려고 할 때 발생하지만 결국 시간 초과됩니다.

2016-01-18 10:06:20 1aLBNr-0005Fj-Ui <= [email protected] H=localhost (lappy.home) [::1] P=esmtp S=482
2016-01-18 10:08:27 1aLBNr-0005Fj-Ui gmail-smtp-in.l.google.com [74.125.203.26] Connection timed out
2016-01-18 10:10:34 1aLBNr-0005Fj-Ui alt2.gmail-smtp-in.l.google.com [64.233.160.26] Connection timed out
2016-01-18 10:12:42 1aLBNr-0005Fj-Ui alt3.gmail-smtp-in.l.google.com [74.125.207.26] Connection timed out
2016-01-18 10:12:43 1aLBNr-0005Fj-Ui == [email protected] R=dnslookup T=remote_smtp defer (110): Connection timed out

exim이것을 기본 로그에 인쇄하십시오. 여기서는 포트 587에서 수신 대기하도록 구성되어 있음을 볼 수 있습니다.

2016-01-18 09:14:03 exim 4.84 daemon started: pid=10234, -q30m, listening for SMTP on [127.0.0.1]:587 [::1]:587

나는 다음 줄을 가지고 있습니다 /etc/default/exim4:

SMTPLISTENEROPTIONS='-oX 587 -oP /var/run/exim4/exim.pid'

/etc/exim4/exim4.conf.template현재 exim()에서 TLS가 활성화되어 있지 않습니다 .

#####################################################
### main/03_exim4-config_tlsoptions
#####################################################
#tls_on_connect_ports=465
### main/03_exim4-config_tlsoptions
#################################

관련 정보