我有一个从客户端发送的电子邮件列表,这些电子邮件由逗号分隔。如何验证所有这些电子邮件以确保它们是有效的电子邮件?例如,用户可以在文本框中捕获电子邮件,例如 one@one.com,两个@ two.com,三个@ three.com 等
答案 0 :(得分:2)
我通过使用客户验证功能
在某些时候构建了类似的功能Validator::extend("emails", function($attribute, $value, $parameters) {
$rules = ['email' => 'required|email'];
$emails = array_map('trim', explode(';', $value)); //$value
foreach ($emails as $email) {
$data = ['email' => $email];
$validator = Validator::make($data, $rules);
if ($validator->fails()) {
return false;
}
}
return true;
});
答案 1 :(得分:0)
如果您正在寻找如何验证电子邮件以检查它们是否有效且是真实的电子邮件,您只需使用SMTP服务器即可。有一个免费的github项目:https://github.com/tintnaingwinn/email-checker
如果您仔细阅读自述文件,该软件包会为您提供自定义验证规则。
编辑:如果这不是主题,我很抱歉,因为问题是关于验证电子邮件列表。但是,如果要使用SMTP服务器测试电子邮件,则可以使用此软件包。希望这有帮助。
答案 2 :(得分:-1)
如果您尝试验证一组电子邮件,那么最简单的验证方法是使用带有通配符.
的点*
语法。这是一个例子:
$request->validate([
'emails.*' => ['email'],
...
]);