Я бы обработал проверку на бизнес-уровне.Я стараюсь хранить как можно больше логики в базе данных.
Кроме того, я не беспокоюсь о том, чтобы получить идеальное регулярное выражение для адресов электронной почты.Я обычно просто проверяю, что он содержит символ @.Я не хочу, чтобы моя проверка запрещала какой-либо действительный адрес электронной почты, о котором я не думал.Если я хочу быть уверенным, что это хороший адрес, я отправлю ему письмо по электронной почте и попрошу их нажать ссылку, чтобы подтвердить свой адрес электронной почты.