栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Python smtplib发送不包含密钥文件(仅包含证书文件)的电子邮件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Python smtplib发送不包含密钥文件(仅包含证书文件)的电子邮件

有两种使用SSL /
TLS的方法:客户端身份验证和“基本”,即客户端未经身份验证。在客户端身份验证的连接中,服务器和客户端都向对方发送证书。在“基本”中,只有服务器可以。

如果您既未通过证书也未通过密钥文件,

smtplib
则将使用对客户端进行身份验证的基本连接。

如果您使用证书,它将用于客户端验证的连接。在这种情况下,服务器将通过签名握手消息来要求客户端显示其拥有证书。为了使客户端能够做到这一点,它还需要私钥,该私钥可以在证书文件中,也可以作为单独的密钥文件。

长话短说,如果要使用客户端证书,则还必须使用密钥。如果没有,您可以将两者都留空。


OTOH,也许您有要用于连接的服务器证书文件或CA列表?

在这种情况下,你需要将它传递给

ssl.wrap_socket
ca_certs
参数。由于您使用Python
2.6有没有简单的方法来做到这一点与
smtplib
(Python的3.3+有一个
context
参数STARTTLS)。

如何解决这个问题取决于您的应用程序。例如,如果您不需要

ssl
其他任何东西,那么骇人听闻的解决方案就是用猴子补丁
ssl.wrap_socket
来提供您的
ca_cert
(以及
cert_reqs=CERT_REQUIRED
可能的)补丁。

一个更完善的解决方案是

smtplib.SMTP
使用您自己的变体进行扩展,该变体允许传入这些参数。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/483875.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号