Вот простое в обслуживании решение с использованием регулярных выражений
$domains = array(
'secondgearsoftware',
'secondgearllc',
'euro\.secondgearsoftware',
'asia\.secondgearsoftware'
);
preg_match("`@(" .implode("|", $domains). ")\.com$`i", $userProvidedEmail);
Вот пара тестов:
$tests = array(
'bob@secondgearsoftware.com',
'bob@secondgearllc.com',
'bob@Xsecondgearllc.com',
'bob@secondgearllc.net',
'bob@euro.secondgearsoftware.org',
'bob@euro.secondgearsoftware.com',
'bob@euroxsecondgearsoftware.com',
'bob@asia.secondgearsoftware.com'
);
foreach ( $tests as $test ) {
echo preg_match("`@(" .implode("|", $domains). ")\.com$`i", $test),
" <- $test\n";
}
Результат (1 проходит, конечно)
1 <- bob@secondgearsoftware.com
1 <- bob@secondgearllc.com
0 <- bob@Xsecondgearllc.com
0 <- bob@secondgearllc.net
0 <- bob@euro.secondgearsoftware.org
1 <- bob@euro.secondgearsoftware.com
0 <- bob@euroxsecondgearsoftware.com
1 <- bob@asia.secondgearsoftware.com