5

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

4

5 回答 5

7

这就是雷鸟的做法

/**
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

于 2012-09-25T09:37:49.780 回答
2

Thunderbird 3也可以。我会看一下源代码。
我认为这只是一个查找表..

于 2010-01-22T07:55:13.027 回答
1

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

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

干杯,丹

于 2010-01-22T08:02:59.233 回答
0

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

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

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

于 2010-01-22T08:40:30.390 回答
0

雷鸟做得很好。这里描述了它的方法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 记录作为支持的机制,但我们目前没有。

于 2014-11-10T20:28:48.140 回答