首页 > 解决方案 > “请先运行 connect()” - 第二次尝试

问题描述

我有一个过去几个月一直在使用的 python 脚本,没有任何问题。在我最后一次尝试运行脚本时,我遇到了“请先运行 connect()”错误。

我在这里查看了相关问题,但就我而言,这种行为有点奇怪。电子邮件发送功能运行了两次(如预期的那样) - 但我仅在第二次函数调用(循环运行)时得到错误。

不知道为什么它适用于第一个函数调用,但不适用于第二个。我还要说这不是我第一次调用该函数两次,但这是第一次在第二次调用时失败。

希望有人知道可能导致错误的原因以及如何修复它。在此先感谢您的帮助。

smtp_host = 'AWS' // Not the real value
port = 465
message = "my message"
server = smtplib.SMTP_SSL(smtp_host, port, 'email.com')
msg = EmailMessage()
msg.set_content(message)

msg['Subject'] = "maintenance"
msg['From'] = 'test1@email.com'
msg['To'] = 'test2@email.com'

server.login(args.email_name, args.email_passwd)
server.send_message(msg)   
server.quit()

编辑:

同样的问题再次发生,这次我能够拉出回溯:

Traceback (most recent call last):
  File "/home/jenkins/workspace/NOC_Maintenance_Scheduler_master/NOC_Scripts/Maintenance_Scheduler/SQL_Email.py", line 43, in execute_send
    server.login(args.email_name, args.email_passwd)
  File "/usr/lib/python3.5/smtplib.py", line 693, in login
    self.ehlo_or_helo_if_needed()
  File "/usr/lib/python3.5/smtplib.py", line 599, in ehlo_or_helo_if_needed
    if not (200 <= self.ehlo()[0] <= 299):
  File "/usr/lib/python3.5/smtplib.py", line 439, in ehlo
    self.putcmd(self.ehlo_msg, name or self.local_hostname)
  File "/usr/lib/python3.5/smtplib.py", line 366, in putcmd
    self.send(str)
  File "/usr/lib/python3.5/smtplib.py", line 358, in send
    raise SMTPServerDisconnected('please run connect() first')
smtplib.SMTPServerDisconnected: please run connect() first

标签: python

解决方案


推荐阅读