Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python smtplib的电子邮件附件的不稳定行为_Python_Email_Email Attachments_Smtplib - Fatal编程技术网

使用python smtplib的电子邮件附件的不稳定行为

使用python smtplib的电子邮件附件的不稳定行为,python,email,email-attachments,smtplib,Python,Email,Email Attachments,Smtplib,我的电子邮件脚本基于上的此脚本。我使用这个脚本从许多使用各种ISP的远程机器发送HTML日志文件 但是,附件的发送并不一致。它在80%的时间里确实有效,但我有两种奇怪的行为。第一种情况是根本不发送电子邮件,但会抛出您在下面看到的错误 Traceback (most recent call last): File "/root/sapapps/reporter/usage_report.py", line 336, in ? se.send_mail(['thinkwelldesign

我的电子邮件脚本基于上的此脚本。我使用这个脚本从许多使用各种ISP的远程机器发送HTML日志文件

但是,附件的发送并不一致。它在80%的时间里确实有效,但我有两种奇怪的行为。第一种情况是根本不发送电子邮件,但会抛出您在下面看到的错误

Traceback (most recent call last):


File "/root/sapapps/reporter/usage_report.py", line 336, in ?
    se.send_mail(['thinkwelldesigns@g1234.com'], cd.contact, 'dave@1234.com', 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(['thinkwelldesigns@1234.com'], cd.contact, 'dave@1234.com', 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附件中剥离出来。注意,如果您登录到远程计算机,您会发现原始文件完好无损,但附加的文件丢失了日志条目

我猜这些问题都是无关的问题,但是有人对如何最可靠地发送HTML附件有什么建议吗

蒂亚


Dave

在使用smtplib.SMTP之前,我遇到了一个问题,并通过SSL连接确定了所需的电子邮件服务器。如果常规调用失败,您可以尝试使用smtplib.SMTP\u SSL。

第一个问题引发了以下两个错误之一:

smtplib.SMTPServerDisconnected: Server not connected 

通过切换到Gmail作为邮件服务器解决了这个问题

第二个错误是删除了部分HTML附件,通过在电子邮件脚本处理之前关闭报告文件解决了这个错误

html_report.close()

我是Python新手-|

smtplib.SMTPServerDisconnected的第一个问题是:服务器未连接或socket.error:(104,“由对等方重置连接”),通过切换到Gmail作为邮件服务器解决了这个问题。删除部分HTML附件的第二个错误通过在发送电子邮件之前关闭HTML文件“HTML_report.close()”得到纠正。
html_report.close()