我正在尝试创建一个程序,该程序读取未读的电子邮件并使用自动回复来响应发送,该回复将由某些短语的使用触发。我正在Visual Code的Mac OSX中执行此操作。我能够连接到IMAP和SMTP,但是随后出现以下错误, smtplib.SMTPServerDisconnected:请先运行connect()。
我尝试使用属于smtplib的异常,如果SMTP服务器断开连接,则应该引发该异常,但它不会执行任何操作。
def smtp_init():
print("Initializing STMP . . .",end = '')
global s
s = smtplib.SMTP(smtpserver,smtpserverport)
status_code = s.starttls()[0]
if status_code is not 220:
raise Exception('Starting tls failed: '+ str(status_code))
status_code = s.login(radr,pwd)[0]
if status_code is not 235:
raise Exception('SMTP login failed: '+ str(status_code))
print("Done. ")
except smtplib.SMTPServerDisconnected:
smtp_init()
continue
预期结果将是使程序循环检查电子邮件,如果电子邮件中包含与自动回复相对应的短语,则对其进行回复。