使用smtplib时出现问题.以雅虎为服务器的SMTP_SSL



我正试图使用yahoo作为服务器通过python发送电子邮件,但当我这样做时,我会收到错误

"ssl。SSLError:[SSL:WRONG_VERSION_NUMBER]版本号错误(_SSL.c:1125(";

我猜,正如它所说,我的ssl版本与雅虎的不匹配,但我在任何地方都找不到雅虎使用的版本。我正在使用ssl。OPENSSL_VERSION来标识我的版本,该版本将它作为";OpenSSL 1.1.1i";

有人知道我该怎么解决吗?我已经在下面包含了代码

import smtplib
msg = "Hello!, this is a test email. Goodbye!"
fromadd = '*****@yahoo.com'
toadd = 'email@domain.com'
subject = 'Python Test Email'
username = str('*****@yahoo.com')
password = str('********')
server = smtplib.SMTP_SSL('smtp.mail.yahoo.com', 587)
server.ehlo()
server.login(username, password)
server.sendmail(fromadd, toadd, msg)
server.quit()

以及确切的错误消息:

ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1125)
server = smtplib.SMTP_SSL('smtp.mail.yahoo.com', 587)

端口587用于纯SMTP,其中TLS由显式纯文本STARTTLS命令(显式TLS(启动。为此,请将smtplib.SMTP与starttls((一起使用。

为了使用smtplib.SMTP_SSL(隐式TLS,即直接在TCP连接之后(,应当改为连接到端口465。

最新更新