如何解决AttributeError:SMTP_SSL实例在Python中没有属性'__exit__'?

问题描述 投票:0回答:2

任何人都可以帮我解决这个错误:AttributeError:SMTP_SSL实例没有属性'exit'。

我正在研究一个使用Python发送多个电子邮件的小模块。 Python版本:2.7.15操作系统:MacOS X.

import smtplib
import ssl
port = 465  # For SSL
smtp_server = "smtp.gmail.com"
sender_email = "[email protected]"  # type: str # Enter your address
receiver_email = "[email protected]"  # 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)
python ssl pycharm email-integration smtplib
2个回答
1
投票

在Python3.3中添加了对with使用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()

-1
投票

从服务器定义中删除上下文,它将与python 2.7一起使用

context=ssl.create_default_context() server=smtplib.SMTP_SSL(smtp_server,port) server.login(sender,password) print('it worked!') server.sendmail(sender,reciever,message) print('Mail sent') server.quit()

© www.soinside.com 2019 - 2024. All rights reserved.