这是我使用SSL上下文的代码:
with smtplib.SMTP(host, port) as smtpserver:
smtpserver.ehlo()
smtpserver.starttls(context=ssl.create_default_context())
... etc ...
默认上下文对象是否是可以在多线程程序中共享和重用的常量?我的意思是只创建一次:
SSL_CONTEXT = ssl.create_default_context()
接着:
with smtplib.SMTP(host, port) as smtpserver:
smtpserver.ehlo()
smtpserver.starttls(context=SSL_CONTEXT)
发送的每条消息。
最佳答案
每个连接应具有自己的上下文。您可以在http.client的Python源代码中看到HTTPSConnection为每个连接创建新的上下文。
https://github.com/python/cpython/blob/master/Lib/http/client.py