Mein E-Mail-Skript basiert auf diesem Skript unter Fine Frog. Ich verwende dieses Skript, um HTML-Protokolldateien von einer Reihe von Remote-Computern mit einer Vielzahl von ISPs zu senden.Unregelmäßiges Verhalten bei E-Mail-Anhängen mit python smtplib
Der Anhang wird jedoch nicht konsistent gesendet. Es funktioniert 80% der Zeit, aber ich bekomme zwei Arten von seltsames Verhalten. Die erste ist, wo die E-Mail wird nicht gesendet, sondern führt den Fehler (n) siehe unten
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
Oder auf einigen Maschinen dieser Fehler ausgelöst wird.
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')
In der zweiten Instanz seltsamen Verhaltens wird die E-Mail ohne Fehler verarbeitet, geht die Befestigung entlang, aber einige Daten aus dem HTML-Anhang in dem E-Mailing-Prozess abgezogen. IOW, wenn Sie sich auf dem Remote-Computer anmelden, finden Sie die ursprüngliche Datei intakt, aber die angehängte Datei ist verpasste Protokolleinträge.
Ich vermute, dass diese Probleme unabhängig voneinander Probleme sind, aber hat jemand einige Tipps, wie Sie am zuverlässigsten HTML-Anhänge senden?
TIA,
Dave
Das erste Problem mit gab die smtplib.SMTPServerDisconnected: Server nicht verbunden oder socket.error: (104, 'Verbindung zurückgesetzt durch Peer') wurde durch den Wechsel zu Gmail als Mail-Server gelöst. Der zweite Fehler, bei dem ein Teil des HTML-Anhangs entfernt wurde, wurde korrigiert, indem die HTML-Datei "html_report.close()" vor der E-Mail geschlossen wurde. – Thinkwell