无法使用server.sendmail()发送电子邮件

时间:2020-07-16 17:23:21

标签: python

我正在尝试使用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()

1 个答案:

答案 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)
相关问题