python中的smtplib错误
我有一个python脚本,在raspeberry pi上运行,它监视我的服务器室,定期给我发送电子邮件,并制作其他东西。 第一次运行脚本时,它会发送一个通知并正常工作,然后等待一段时间(5或30分钟),这取决于是否触发了报警,所以我编写了一个for循环来等待。循环完成后,脚本调用发送电子邮件的函数,python返回一个错误。 有人能帮我吗? 我也在Debian7.7.0Box上测试了它,我发现了同样的错误。 下面是一个示例脚本和错误。 提前谢谢。 多姆python中的smtplib错误,python,Python,我有一个python脚本,在raspeberry pi上运行,它监视我的服务器室,定期给我发送电子邮件,并制作其他东西。 第一次运行脚本时,它会发送一个通知并正常工作,然后等待一段时间(5或30分钟),这取决于是否触发了报警,所以我编写了一个for循环来等待。循环完成后,脚本调用发送电子邮件的函数,python返回一个错误。 有人能帮我吗? 我也在Debian7.7.0Box上测试了它,我发现了同样的错误。 下面是一个示例脚本和错误。 提前谢谢。 多姆 smtplib在创建SMTP对象时打开TC
smtplib在创建SMTP对象时打开TCP连接。当超时可能已经关闭连接时,尝试在500秒不活动后重新使用它 您应该只保留服务器名称,在您的用例中为每个连接创建一个新的SMTP对象,因为发送邮件之间的延迟太大。如上所述,您应该为每个发送的电子邮件打开和关闭与服务器的连接 几个月前,我编写了一个用Python发送电子邮件的类,您可以在这里找到:创建一个DataSender对象,它处理到服务器的连接。此外,它调用一个JSON文件,其中存储帐户和密码,因此您不需要将其保存在代码中
请随意使用它。正如源代码开头的评论中所提到的那样,它是从中改编而来的。谢谢Serge和kmundnic。我在maintime中做了另一个测试,我写了一个发送电子邮件的函数,必要时调用,工作正常。我相信类文档不是很清楚。明天我来看看你们的课。
File "/usr/lib/python2.7/smtplib.py", line 361, in getreply
raise SMTPServerDisconnected("Connection unexpectedly closed")
smtplib.SMTPServerDisconnected: Connection unexpectedly closed
# Import
from time import sleep
import time
import smtplib
import sys
import string
smtp_server = "10.0.0.4" # mail server address
mail_from = "server@domain.com"
mail_to = "user@gmail.com"
mail_subj = "Server room notify"
server = smtplib.SMTP(smtp_server)
valore = 24 # value for the funtion
def SendAlertEmail(t_value):
log_t = time.strftime("%d/%m/%A %H:%M:%S ")
Text = string.join("Server room notify \n " + str(log_t) + str(t_value))
Body_email = string.join((
"From: %s" % mail_from,
"To: %s" % mail_to,
"Subject: %s" % mail_subj,
"",
Text
), "\r\n")
server.sendmail(mail_from,mail_to,Body_email)
return
SendAlertEmail(valore) # calling from here works fine
for i in range(0,500):
sleep(1)
print(str(i))
SendAlertEmail(valore) # after 500 secs goes in error. Test on debian 7.7.0 python 2.7.3 gcc 4.7.2