从电子邮件地址确定POP/IMAP服务器
有没有一种方法根据电子邮件地址来确定POP或IMAP服务器?我正在为非技术用户构建一个应用程序,我真的不想打扰他们询问他们的IMAP/POP服务器。 mail2web.com这样做,但我不知道如何。从电子邮件地址确定POP/IMAP服务器
标准中没有规定给定域的POP/IMAP服务器。只有约定或者如Joril所建议的那样,可以使用查找表。 SMTP服务器不同,因为有功能要求将邮件发送到下一站。拿起(通过POP/IMAP)是一个完全本地的域管理问题。抱歉。
我想你可以把域名和建立一个服务器名称,使[email protected]成为pop.mymail.com和imap.mymail.com。或者可能需要进一步查询MX记录并执行类似的替换。然后,您可以浏览您的候选服务器列表,寻找POP/IMAP响应。虽然在安全方面可能会有点狡猾。
干杯, 丹
绝对没有办法,一般这样做正确。
但是,您可以使用常见邮件提供商的表填写默认值,并且您可以填写smtp.example.com等......但在某些简单情况下仍然会失败,不过,像我的工作系统那样一切都在不寻常的端口号上的mail.wherever.com上。所以最终,用户必须能够覆盖你所做的任何事情。
如果你真的希望它是一般的,你将不得不处理证书和EAP。
这是雷鸟是怎么做的
/**
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 */
雷鸟做得很好。它的方法在这里描述https://developer.mozilla.org/en-US/docs/Mozilla/Thunderbird/Autoconfiguration。以下是文档的摘录。
所有查找机制都使用电子邮件地址域作为查找的基础。例如,对于电子邮件地址[email protected],查找作为(以该顺序)进行的:
- TB安装目录/ ISP/example.com.xml在硬盘
- 检查for autoconfig.example.com
- 在ISPDB中查找“example.com”
- 在DNS中查找“MX example.com”,并查找mx1.mail.hoster.com,查找“hoster.com “在ISPDB
- 尝试猜测(imap.example.com,smtp.example.com等)
我们未来可能会在未来添加DNS SRV记录作为支持机制,但我们目前没有。
这是Thunderbird中的源文件:http://mxr.mozilla.org/comm-central/source/mailnews/base/prefs/content/accountcreation/guessConfig.js – Midhat 2012-09-25 09:36:35