まず普通にemailのバリデーションを考える。
/^[a-zA-Z0-9_.+-]+[@][a-zA-Z0-9.-]+$/
これで試す。
$email = ["test@yahoo.com","あああ@gmail.com","12345"];
foreach($email as $data){
if(preg_match("/^[a-zA-Z0-9_.+-]+[@][a-zA-Z0-9.-]+$/", $data)){
echo $data . " is ok<br>";
} else {
echo $data . " is not email<br>";
}
}

HTML5のemail属性はどうなってるのか?
Mozilla.org: Email
https://developer.mozilla.org/ja/docs/Web/HTML/Element/input/email
username@domain または username@domain.tld
なるほど、良さそうやな。