uiuifree.com

- サイト制作のノウハウと最適化を目指して-

2020.1.8【PHP】メールアドレスからキャリア判定する方法と便利ライブラリ

【PHP】メールアドレスからキャリア判定する方法と便利ライブラリ

メルマガ配信系のサービスを作ってるとマーケの方から配信率・売り上げ等のダッシュボード等をキャリア毎に作って欲しいとの要望がよくあります。

  • ・配信率が悪くなったのでキャリア別に分析したい
  • ・急に売上さがったので原因を調査したいなど

毎回ロジック書いているのも少し手間なので判定するロジックの紹介とライブラリを自作したので紹介していきます。

携帯電話キャリア・ドメイン一覧

WEBサイト運営においてキャリア判別で使えるのはメールドメインとUserAgentになります。今回はドメインを各キャリアに分類しています。

携帯電話キャリア ドメイン
au au.com
biz.au.com
ezweb.ne.jp
biz.ezweb.ne.jp
ido.ne.jp
uqmobile.jp
augps.ezweb.ne.jp
uqmobile.jp
NTTドコモ docomo.ne.jp
mopera.net
dwmail.jp
ソフトバンク disney.ne.jp
disneymobile.ne.jp
i.softbank.jp
softbank.ne.jp
vodafone.ne.jp
Google gmail.com
Apple icloud.com
me.com
mac.com
Microsoft outlook.com
outlook.jp
hotmail.com
hotmail.co.jp
live.jp
live.com
Yahoo(Y!mobile/ウィルコム) yahoo.co.jp
ybb.ne.jp
pdx.ne.jp
wcm.ne.jp
willcom.com
y-mobile.ne.jp
emnet.ne.jp
emobile-s.ne.jp
emobile.ne.jp
ymobile1.ne.jp
ymobile.ne.jp
Jフォン jp-c.ne.jp
jp-d.ne.jp
jp-h.ne.jp
jp-k.ne.jp
jp-n.ne.jp
jp-q.ne.jp
jp-r.ne.jp
jp-s.ne.jp
jp-t.ne.jp
ツーカー sky.tkc.ne.jp
sky.tkk.ne.jp
sky.tu-ka.ne.jp

判定コード

単純にキャリア判定をしたいのであれば上記の表を用いてin_array などを用いて分岐を記述すれば十分に判定が可能です


$domain = “au.com”;
$mobileCarrier = “”;

if(in_array($domain,[‘au.com’]){
  $mobileCarrier = “au”;
}elseif(in_array($domain,[‘docomo.ne.jp’,’mopera.net’])){
  $mobileCarrier = “NTT docomo”;
}

WhoDomain

上記のロジックを簡単に使えるようWhoDomainというライブラリを公開しています。
ドメインのキャリア判定とキャリア名が取得できるシンプルなものです。

導入方法

WhoDomaincomposerを使ってインストールします。


composer require uiuifree/who-domain:1.0.1

キャリアの取得


echo WhoDomain::who('au.com');
// output : au
echo WhoDomain::who('gmail.com');
// output : Google

キャリアの判定


WhoDomain::isAu("au.com"); // true
WhoDomain::isDocomo("docomo.ne.jp"); // true
WhoDomain::isSoftback("softbank.ne.jp"); // true

簡単な集計ロジックだとすぐに実用できるかと思います。
是非利用してみてください。

PROFILE

このサイトを運営してるuiuifreeです。
渋谷のベンチャー企業で2年ほど新規事業を担当した後にフリーランスエンジニアにキャリア転換。
求人サイトの開発が多くエンジニア/飲食店/看護師/保育士などの分野でサイトを運営しています。

アウトプット中の技術

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)