繁体   English   中英

电子邮件的Laravel验证规则

[英]Laravel validation rule for email

我不知道如何为电子邮件字段制定验证规则,不接受像Gmail,雅虎等电子邮件免费帐户。任何人都可以指导我这个主题。 提前致谢

将电子邮件提供商列表放入配置文件中,例如放入config/email.php

'banned_email_providers' => '@gmail\.com|@yahoo\.com'

然后使用此列表使用regex验证规则:

'email' => ['regex:/^((?!' . config('email.banned_email_providers') . ').)*$/'],

您可以存储邮件站点的名称并检查其值的电子邮件

$free = [
   'google.com',
   'yahoo.com'
];

$mailSite = substr($email, strpos($email, '@') + 1);

if (in_array($mailSite, $free) {
    exit('free email');
}

将此条目添加到\\ config \\ mail.php

'banned_servers' => ['yahoo.com', 'gmail.com']

然后

    $rules = [
        'email' => array('regex:/@(?!' . implode('|', array_map(function ($item){return str_replace('.', '\.', $item);}, config('mail.banned_servers'))) . ')/')
    ];

    $messages = ['email.regex' => 'Email accounts from '. implode(', ', config('mail.banned_servers')) . ' are not allowed'];

    $this->validate(Request::instance(), $rules, $messages);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM