我在Laravel应用程序中创建了一个编辑表单,用于接收电子邮件地址。我已经在服务器端使用了Laravel验证。当我传递一个明显无效的值,如“xxxxxx”时,它可以正确地验证电子邮件地址。
但是问题在于当我发送一个没有点的顶级域的电子邮件地址,例如“xxxxxx@yyyyyy”时,它将其作为有效的电子邮件地址接受。
如何验证电子邮件地址以确保其使用正确的域名?
我在Laravel应用程序中创建了一个编辑表单,用于接收电子邮件地址。我已经在服务器端使用了Laravel验证。当我传递一个明显无效的值,如“xxxxxx”时,它可以正确地验证电子邮件地址。
但是问题在于当我发送一个没有点的顶级域的电子邮件地址,例如“xxxxxx@yyyyyy”时,它将其作为有效的电子邮件地址接受。
如何验证电子邮件地址以确保其使用正确的域名?
使用 Laravel 7:您可以使用
'email' => 'email:rfc,dns'
试试这个:
$this->validate($request, [
'email' => 'required|regex:/(.+)@(.+)\.(.+)/i',
]);
$validator = Validator::make($request->all(), [
'Email'=>'required|email'
]);
<?php
$email = 'email@gmail.com';
list($username, $domain) = explode('@', $email);
if (checkdnsrr($domain, 'MX')) {
echo "verified";
}
else {
echo "failed";
}
'email_address' => 'required|email|unique:customers,email_address'
$data= $request->validate([ 'email' => 'required|email' ]);
您可以在文档中找到所有相关信息 https://laravel.com/docs/5.8/validation#rule-email - CaShiSgmail.com
拼错成gmsil.com
。但它仍然允许这种错误,因为gmsil.com
是一个有效的域名。但如果我尝试使用任意随机字符串作为电子邮件前缀并添加@gmsil.com
,它仍然允许通过。 - ajay makwana