2016-08-21 10 views
0

特定のsmtp設定を使用してメッセージが迷惑メールとして表示されないように、メールアドレス(例:gmail、outlook、yahoo)を取得しようとしています。メールアドレスからメールプロバイダを取得する

私の現在のアプローチはメールアドレスのメールサーバを解析し、それを識別子として使用しますが、メールプロバイダには複数のメールサーバがあります(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:電子メールアドレスのドメイン名がどのプロバイダとも一致しないケースを処理する方法について考えてみてください。次のことが可能です。

  • は...
  • (すなわちマップに新しいエントリを追加するための)新しいプロバイダを追加する権限をユーザーに許可する機能を追加/例外をスローし、エラーメッセージ
  • を表示します
関連する問題