【问题标题】:Autodiscover POP/IMAP/SMTP settings from an email address从电子邮件地址自动发现 POP/IMAP/SMTP 设置
【发布时间】:2020-10-27 09:03:03
【问题描述】:

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

目前,我列出了 30 多个提供商,以及他们最常用的设置。我在 json 端点上有这些,并根据用户的选择自动填充表单。

这种方法可行,但它依赖于他们的提供者是否在该列表中。

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

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

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

【问题讨论】:

  • 除非有人制作了一个与您当前的自动填充功能完全相同的 API(即在预先制作的列表中查找),否则我不相信您可以做到这一点。电子邮件中没有任何地址可以为您提供有关电子邮件提供商服务器如何配置的任何线索,您只需要知道。如果可能的话,那么现有的桌面邮件客户端(例如 Thunderbird、MS Mail、Apple 邮件等)将能够做到这一点。但至多,它们只会为最受欢迎的提供商自动完成 - 通过在预先制作的列表中查找。
  • 我建议客户至少有责任了解他们的电子邮件提供商是谁,并能够从他们那里获取设置(大多数会公开发布它们,或者通过登录到网络门户) - 如果他们使用不同的邮件客户端,他们必须这样做。但这当然并不意味着您不应该尝试帮助他们。

标签: php smtp imap


【解决方案1】:

如您所述,所需信息包含在 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 记录并且没有限制。

【讨论】:

    猜你喜欢
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多