2016-08-21 2 views
0

Я пытаюсь получить почтового провайдера (например, gmail, outlook, yahoo) с любого адреса электронной почты, чтобы я мог использовать определенные параметры smtp, чтобы мои сообщения не были указаны как спам.Получение почтового провайдера с адреса электронной почты

Мой текущий подход анализирует почтовый серверный почтовый адрес электронной почты и использует его как идентификатор, но поставщики электронной почты имеют несколько почтовых серверов (например: outlook имеет outlook.com, а также live.ca).

Любые предложения простого подхода к идентификации поставщика почты? Если есть какой-то метод с использованием PHP, который был бы особенно желателен. Любая помощь?

ответ

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]" 

PS: Вы можете подумать о том, как обрабатывать случай, когда доменное имя адреса электронной почты не соответствует ни одному провайдеру. Вы можете:

  • Бросить исключение/отобразить сообщение об ошибке
  • Добавить функциональность позволяет авторизованному пользователю, чтобы добавить новый поставщик (т.е. для добавления новой записи в карте)
  • ...
Смежные вопросы