从电子邮件地址自动发现POP / IMAP / SMTP设置

时间:2020-07-07 06:52:34

标签: php smtp imap

我们有一个应用程序,允许我们的用户将其电子邮件地址与SMTP连接。我们的支持团队遇到了噩梦,无法帮助客户找到他们的详细信息,因此,我已经开始构建一种从列表中选择默认设置的方法。

目前,我列出了30多个提供商,以及它们最常用的设置。我将它们放在json端点上,然后根据用户选择自动填充表单。

这种工作方式,但是它取决于列表中的提供者。

有人知道从给定电子邮件地址自动获取主机和端口,TLS等的方法吗?

我知道您可以进行MX查找,但这与smtp主机不匹配。

有点像这样……https://www.emailsettings.email/,但它似乎不适用于自定义域。

1 个答案:

答案 0 :(得分:0)

所需的信息包含在您所说的DNS(MX / SRV)记录中。如果未返回,则除非提供者添加了带有此信息的TXT记录,否则无法自动检索此信息。在PHP中,请求将像这样完成:

try 
{
    $hostname = 'domain.com';
    $authns = array();
    $addtl = array();
    $request = dns_get_record ($hostname, DNS_ANY, $authns, $addtl);
    var_dump($request);
}
catch (Exception $e)
{
    var_dump($e);
}

如果信息是在TXT记录内返回的,则必须进行健全性检查以确保其正确输入,因为它是TXT记录且没有限制。