从电子邮件地址确定POP / IMAP服务器

时间:2010-01-22 07:40:44

标签: imap pop3 email-client

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

5 个答案:

答案 0 :(得分:6)

这就是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

答案 1 :(得分:2)

Thunderbird 3也是这样做的。我会看一下源代码 我认为它只是一个查询表..

答案 2 :(得分:1)

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

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

干杯, 丹

答案 3 :(得分:0)

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

但是,你可以使用普通邮件提供商的表来填写默认值,你可以填写smtp.example.com等......但是在一些简单的情况下仍然会失败,但是,就像我的工作系统一样在mail.wherever.com上有不寻常的端口号。因此,最终,用户必须能够覆盖您所做的任何事情。

如果你真的希望它是一般性的,那么你将不得不处理证书和EAP。

答案 4 :(得分: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. 查看&#34; example.com&#34;在ISPDB中
  4. 查找&#34; MX example.com&#34;在DNS和mx1.mail.hoster.com中,查找&#34; hoster.com&#34;在ISPDB中
  5. 尝试猜测(imap.example.com,smtp.example.com等)
  6. 我们将来可能会将DNS SRV记录添加为支持的机制,但我们目前没有。