私の電子メールスクリプトはFine Frogでこのスクリプトに基づいています。私はこのスクリプトを使用して、さまざまなISPを使用している多数のリモートマシンからHTMLログファイルを送信しています。python smtplibを使用した電子メール添付ファイルの不安定な動作
添付ファイルが一貫して送信されていません。それは時間の80%で動作しますが、私は奇妙なふたつの種類があります。最初は、このエラーが発生し、電子メールは一切送信されない場合であるが、エラー(S)あなたには、いくつかのマシンで、
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
の下に参照するかをスローします。奇妙な行動の2番目のインスタンスで
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添付ファイルの一部が削除された2番目のエラーは、電子メールの前にHTMLファイル "html_report.close()"を閉じることによって修正されました。 – Thinkwell