从电子邮件地址获取电子邮件提供商

Getting email provider from email address

我正在尝试从任何电子邮件地址获取电子邮件提供商(例如:gmail、outlook、yahoo),以便我可以使用特定的 smtp 设置来避免我的邮件被列为垃圾邮件。

我目前的方法是解析电子邮件地址的邮件服务器部分并将其用作标识符,但电子邮件提供商有多个邮件服务器(例如:outlook 有 outlook.com 但也有 live.ca)。

有没有关于识别邮件提供商的简单方法的建议?如果有任何使用 PHP 的方法特别可取。有帮助吗?

您可以使用映射将邮件域名(您在解析电子邮件地址后获得)映射到邮件提供商:

$providerMap = array(
    "gmail" => "Gmail"
    "outlook" => "Outlook"
    "live" => "Outlook"
    # etc...
);

那么,你可以这样使用它:

$providerDomain = getDomain($emailAddress); // assuming getDomain() is the function that parses an email address and returns 

echo "The provider is: $providerMap[$providerDomain]"

P.S.: 你可能会想,邮箱地址域名不匹配任何提供商的情况下,如何处理。您可以:

  • 抛出 exception/display 错误消息
  • 添加允许授权用户添加新提供商的功能(即在地图中添加新条目)
  • ...