python - “请先运行 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
解决方案
推荐阅读
- frameworks - forkdelta 的前端使用什么框架?
- c++ - 如何在单击按钮的确切时刻获取小部件的值 FLTK
- node.js - 有限的帖子请求
- list - 获取列表中的项目数
- excel - 调试代码以将选项卡从一个工作簿移动到另一个作为循环的一部分从主管打开的工作簿
- java - 使用 ResultSet .getArray() 时出现错误“java.sql.SQLException:结果集结束后”
- clang-format - clang-format 展开空初始化程序
- javascript - 从 Node Js Server + Express 下载文件
- sql-server - 当我们为现有表添加标识列时排序如何工作
- python - 为什么python显示异常行为而不是逐行读取代码?