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

时间:2016-08-21 18:48:30

标签: email smtp

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

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

有关识别邮件提供商的简单方法的任何建议吗?如果有任何使用PHP的方法是特别需要的。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

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

$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。:您可能想要考虑如何处理电子邮件地址域名与任何提供商不匹配的情况。你可以:

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