自动检测IMAP连接详细信息

时间:2015-11-26 20:42:45

标签: python imap

我有这些值连接到IMAP服务器:

  • 主机名
  • 用户名
  • 密码

我想用Python自动检测细节:

  • 端口
  • ssl或starttls

如果端口是众所周知的端口号之一,则应该没有太多可能的组合。

尝试所有这将是一个解决方案,但也许有更好的方法?

1 个答案:

答案 0 :(得分:1)

你几乎不得不蛮力,但实际上只有三种设置,它只需要两个连接:

  1. 首先使用常规SSL / TLS连接端口993。如果有效:993 / TLS。如果失败:
  2. 连接到端口143,并检查是否存在CAPABILITY STARTTLS。如果是这样:尝试StartTLS。如果这样有效:143 / STARTTLS。否则:
  3. 查看您是否可以登录143端口。如果失败,则没有良好的配置。无论如何这都不安全,所以不应该气馁。
  4. SMTP稍微复杂一点:你可以尝试587使用StartTLS,465使用TLS,或25使用StartTLS,普通或根本不进行身份验证。

    注意:自动检测STARTTLS是危险的,因为它允许MITM攻击,攻击者隐藏STARTTLS功能,以便您在没有它的情况下尝试登录。您可能想询问用户是否希望不安全地连接,或者提供必须选择的“禁用安全性”设置。