在向py3-validate-email

问题描述

https://github.com/karolyi/py3-validate-email/issues/19

我想处理这个拉取请求,但是最后一条评论说:

将要探测的任何主机可能支持或可能不支持STARTTLS。协商的协议与DNS记录解析完全不同。

我需要对此注释有更多的上下文了解,以及如何将该功能添加到现有代码库中。

我应该如何处理它,以免与其余部分冲突并且用户可以选择启用/禁用STARTTLS?

我想到了以下方法

  • 检查指定主机的MX记录(与对此问题的最后评论相矛盾)
  • 如果主机至少有一个有效的MX记录,那么我将进一步检查它是否支持升级STARTTLS
  • 如果主机支持STARTTLS,则其余事务将在从smtplib启动starttls后执行,如果失败则回退到未加密的事务。

任何帮助将不胜感激。

解决方法

STARTTLS将使用SSL证书将加密添加到当前连接。证书可能包含一个或多个DNS名称。您的python代码应检查这些DNS名称之一是否与MX记录中的主机名匹配。