我正在尝试使用python发送电子邮件,但不会发送任何内容。有修复程序吗?
context = ssl.create_default_context()
try:
with smtplib.SMTP_SSL(smtp_server, port, context=context) as server:
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message1)
except Exception as e:
print(e)
finally:
server.quit()
答案 0 :(得分:0)
实际上,您使用了两次server.quit()
,并在第二次调用时获得了SMTPServerDisconnect。原因是with smtplib.SMTP_SSL(...) as server
。它在with
的末尾断开连接,从而隐含了server.quit()
。因此,当您以后使用server.quit()
时,server
已经断开连接,因此会出现错误。
如何解决:只需删除(无用的)server.quit()
,然后使用:
context = ssl.create_default_context()
try:
with smtplib.SMTP_SSL(smtp_server, port, context=context) as server:
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message1)
except Exception as e:
print(e)