전자 메일 스크립트는 Fine Frog에이 스크립트를 기반으로합니다. 이 스크립트를 사용하여 다양한 ISP를 사용하는 여러 원격 시스템에서 HTML 로그 파일을 전송합니다.python smtplib을 사용하여 전자 메일 첨부 파일이 비정상적으로 작동합니다.
그러나 첨부 파일이 일관되게 전송되지 않습니다. 그것은 80 %의 시간 동안 작동하지만 두 가지 종류의 이상한 행동을합니다. 첫 번째는이 오류가 발생, 이메일이 전혀 전송되지 않습니다 곳이지만, 오류 (들) 일부 시스템에서,
Traceback (most recent call last):
File "/root/sapapps/reporter/usage_report.py", line 336, in ?
se.send_mail(['[email protected]'], cd.contact, '[email protected]', report_subject, text_body, files=[report_name], bcc=[cd.tech_email])
File "/usr/lib/python2.4/site-packages/sap/send_email.py", line 61, in send_mail
mail_server.sendmail(server_addr, addresses, message.as_string())
File "/usr/lib/python2.4/smtplib.py", line 692, in sendmail
(code,resp) = self.data(msg)
File "/usr/lib/python2.4/smtplib.py", line 489, in data
self.send(q)
File "/usr/lib/python2.4/smtplib.py", line 319, in send
raise SMTPServerDisconnected('Server not connected')
smtplib.SMTPServerDisconnected: Server not connected
아래 참조 또는 발생합니다. 이상한 행동의 두 번째 인스턴스에
reply: '421 Command timeout, closing transmission channel\r\n'
reply: retcode (421); Msg: Command timeout, closing transmission channel
data: (421, 'Command timeout, closing transmission channel')
send: 'rset\r\n'
Traceback (most recent call last):
File "/root/sapapps/reporter/usage_report.py", line 336, in ?
se.send_mail(['[email protected]'], cd.contact, '[email protected]', report_subject, text_body, files=[report_name], bcc=[cd.tech_email])
File "/usr/lib/python2.4/site-packages/sap/send_email.py", line 61, in send_mail
mail_server.sendmail(server_addr, addresses, message.as_string())
File "/usr/lib/python2.4/smtplib.py", line 694, in sendmail
self.rset()
File "/usr/lib/python2.4/smtplib.py", line 449, in rset
return self.docmd("rset")
File "/usr/lib/python2.4/smtplib.py", line 374, in docmd
return self.getreply()
File "/usr/lib/python2.4/smtplib.py", line 348, in getreply
line = self.file.readline()
File "/usr/lib/python2.4/socket.py", line 340, in readline
data = self._sock.recv(self._rbufsize)
socket.error: (104, 'Connection reset by peer')
는 이메일 첨부를 따라 진행하고, 에러 처리하지 않고, 일부 데이터는 이메일 전송 과정에서 HTML 첨부 밖으로 제거된다. IOW, 원격 컴퓨터에 로그인하면 원본 파일은 손상되지 않지만 첨부 된 파일은 누락 된 로그 항목입니다.
이 문제는 관련이없는 문제라고 생각하지만 누구나 HTML 첨부 파일을 가장 안정적으로 보내는 방법에 대한 조언을 갖고 있습니까?
TIA,
데이브
첫 번째 문제는 smtplib.SMTPServerDisconnected : 서버가 연결되지 않았거나 socket.error : (104, 'Connection reset by peer')가 메일 서버로 Gmail로 전환하여 해결되었습니다. HTML 첨부 파일의 일부가 제거 된 두 번째 오류는 전자 메일 전에 HTML 파일 "html_report.close()"를 닫음으로써 해결되었습니다. – Thinkwell