【问题标题】:Determine POP/IMAP server from email address从电子邮件地址确定 POP/IMAP 服务器
【发布时间】:2011-01-08 02:47:20
【问题描述】:

在给定电子邮件地址的情况下,有没有办法确定 POP 或 IMAP 服务器?我正在为非技术用户构建一个应用程序,我真的不想打扰他们询问他们的 IMAP/POP 服务器。 mail2web.com 这样做,但我不确定如何。

【问题讨论】:

    标签: imap pop3 email-client


    【解决方案1】:

    Thunderbird 3 也这样做了。我会看看源代码。
    我认为这只是一个查找表..

    【讨论】:

    【解决方案2】:

    标准中没有任何内容规定给定域的 POP/IMAP 服务器。只能使用约定,或者如 Joril 建议的那样,可以使用查找表。 SMTP 服务器有所不同,因为有将邮件发送到下一站的功能要求。取件(通过 POP/IMAP)完全是本地域管理问题。对不起。

    我猜你可以使用域并建立一个服务器名称,使 fred@mymail.com 变为 pop.mymail.com 和 imap.mymail.com。或者也许更进一步并询问 MX 记录并执行类似的替换。然后,您可以遍历候选服务器列表以查找 POP/IMAP 响应。不过在安全方面可能有点狡猾。

    干杯, 丹

    【讨论】:

      【解决方案3】:

      一般来说,绝对没有办法正确地做到这一点。

      但是,您可以使用常见邮件提供商的表格来填写默认值,您可以填写 smtp.example.com 等...但是在某些简单的情况下仍然会失败,例如我的工作系统中的所有内容位于 mail.wherever.com 的异常端口号上。所以最终,用户必须能够覆盖你所做的任何事情。

      如果您真的希望它是通用的,那么您还必须处理证书和 EAP。

      【讨论】:

        【解决方案4】:

        这就是 Thunderbird 的做法

        /**
        18  * Try to guess the config, by:
        19  * - guessing hostnames (pop3.<domain>, pop.<domain>, imap.<domain>,
        20  *                       mail.<domain> etc.)
        21  * - probing known ports (for IMAP, POP3 etc., with SSL, STARTTLS etc.)
        22  * - opening a connection via the right protocol and checking the
        23  *   protocol-specific CAPABILITIES like that the server returns.
        24  */
        

        http://mxr.mozilla.org/comm-central/source/mailnews/base/prefs/content/accountcreation/guessConfig.js

        【讨论】:

          【解决方案5】:

          雷鸟做得很好。它的方法在这里描述https://developer.mozilla.org/en-US/docs/Mozilla/Thunderbird/Autoconfiguration。以下是文档的摘录。

          所有查找机制都使用电子邮件地址域作为查找的基础。例如,对于电子邮件地址 fred@example.com ,查找执行如下(按此顺序):

          1. tb-install-dir/isp/example.com.xml 在硬盘上
          2. 检查 autoconfig.example.com
          3. 在 ISPDB 中查找“example.com”
          4. 在 DNS 中查找“MX example.com”,对于 mx1.mail.hoster.com,在 ISPDB 中查找“hoster.com”
          5. 尝试猜测(imap.example.com、smtp.example.com 等)

          我们将来可能会添加 DNS SRV 记录作为未来支持的机制,但我们目前没有。

          【讨论】:

            猜你喜欢
            • 2018-05-23
            • 2020-10-27
            • 2021-06-20
            • 2011-03-27
            • 2012-05-20
            • 2017-08-29
            • 2019-08-16
            • 2011-02-28
            相关资源
            最近更新 更多