python - 如何解决 AttributeError:SMTP_SSL 实例在 Python 中没有属性“__exit__”?
问题描述
谁能帮我解决这个错误: AttributeError: SMTP_SSL instance has no attribute ' exit '。
我正在开发一个使用 Python 发送多封电子邮件的小模块。Python 版本:2.7.15 操作系统:MacOS X
import smtplib
import ssl
port = 465 # For SSL
smtp_server = "smtp.gmail.com"
sender_email = "abc@gmail.com" # type: str # Enter your address
receiver_email = "xyz@gmail.com" # Enter receiver address
password = 'xyz@0101'
message = """\
Subject: Hi there
This message is sent from Python."""
context = ssl.create_default_context()
with smtplib.SMTP_SSL(smtp_server, port, context ) as server:
server.login(sender_email, password)
server.sendmail(sender_email, message, receiver_email)
解决方案
在 Python3.3 中添加了对 usingwith
语句的支持smtplib.SMTP_SSL
,因此在 Python2.7 中将无法使用
像这样的东西应该工作:
context = ssl.create_default_context()
server = smtplib.SMTP_SSL(smtp_server, port, context )
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message)
server.quit()
推荐阅读
- regression - 一个解释变量的测量误差对其他解释变量的影响
- php - WordPress - 如果作者未登录,则不显示任何文章
- r - 我们可以用一个点制作一个多边形吗?在 R 中
- reactjs - 我可以使用 ReactElement 作为 useState 参数吗?
- sql - 定义表时如何在google bigquery中编写IDENTITY(1,1)和默认值?
- java - 如何在 Kotlin 中将字符串值添加到 arrayListOf?
- javascript - 如何确保 HTML 中文本框的一致对齐?
- sql-server - 在 SQL Server 数据库中创建新用户后,该用户可以创建和删除表。为什么?
- c++ - 如何重建 micropython 固件添加我自己的 C++ 代码
- python - 通过减去非工作时间来计算流程的有效时间