ssl - 使用 smtplib.SMTP_SSL 和 yahoo 作为服务器时出现问题

标签 ssl smtp smtplib

我正在尝试使用 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.SMTPstarttls() .
使用 smtplib.SMTP_SSL (隐式 TLS,即直接在 TCP 连接之后)应该连接到端口 465。

关于ssl - 使用 smtplib.SMTP_SSL 和 yahoo 作为服务器时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68214149/

相关文章:

.net - 如何使用 .NET Framework 4 + 通过 SSL SMTP 发送电子邮件

Python smtplib 代理支持

python - 如何在 ubuntu 操作系统中安装 python smtplib 模块

ssl - 如何使用 SSL 让网站在 Okta 上与 SAML 一起工作

Python SSL 请求和让我们加密证书

ubuntu - 在成功构建时通过 Jenkins 发送邮件?

c - 从微 Controller 发送smtp电子邮件

python - 我不能在 EMAIL_PASSWORD 中使用 Unicode 字符和 django

ubuntu - 在 EC2 Ubuntu 实例上安装 COMODO EV SSL 证书

ssl - 无法在 Laradock Nginx 中启动 Certbot 容器