尝试通过Python发送电子邮件时出现问题

时间:2020-03-21 10:58:59

标签: python-3.x email ssl

OS:MacCatalinva V10.15.3

Python:3.7.7

画中画:20.0.2

嘿, 我是编码的新手,所以不确定这到底意味着什么。

我正在尝试通过Gmail通过Python发送电子邮件,已将我的帐户设置为接受“缺乏安全的应用程序访问权限”,并按照this guide中的步骤进行操作,但我得到的只是以下内容:

`[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败:无法获取本地发行者证书(_ssl.c:1076) 追溯(最近一次通话): 发送中的文件“ /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/smtplib.py”,第354行 self.sock.sendall(s) OSError:[Errno 9]错误的文件描述符

在处理上述异常期间,发生了另一个异常:

回溯(最近通话最近): 文件“ /Users/mymac/Desktop/Test2.py”,第34行,在 server.quit() 文件“ /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/smtplib.py”,第984行,退出 res = self.docmd(“退出”) 在docmd中的文件“ /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/smtplib.py”,第420行 self.putcmd(cmd,args) 文件“ /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/smtplib.py”,行367,在putcmd中 自我发送(str) 发送中的文件“ /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/smtplib.py”,第357行 引发SMTPServerDisconnected('服务器未连接') smtplib.SMTPServerDisconnected:服务器未连接`

这是我的代码:

import smtplib
import ssl


sender_email = "myemailadress@gmail.com"
receiver_email = "myadress@hotmail.com"
message = """\
Subject: Hi there

This message is sent from Python."""

# Send email here

smtp_server = "smtp.gmail.com"
port = 587  # For starttls
sender_email = "myemailadress@gmail.com"
password = input("Type your password and press enter: ")

# Create a secure SSL context
context = ssl.create_default_context()

# Try to log in to server and send email
try:
    server = smtplib.SMTP(smtp_server, port)
    server.ehlo()  # Can be omitted
    server.starttls(context=context)  # Secure the connection
    server.ehlo()  # Can be omitted
    server.login(sender_email, password)
    # TODO: Send email here
except Exception as e:
    # Print any error messages to stdout
    print(e)
finally:
    server.quit()

1 个答案:

答案 0 :(得分:0)

1)在此行之后:

server.login(sender_email, password)

确保发送您拥有的消息。 为此:

server.sendmail(sender_email,receiver_email,message)    

就是这样,我希望。