在Laravel中验证电子邮件地址

zwghvu4y  于 2023-05-08  发布在  其他
关注(0)|答案(5)|浏览(200)

我在我的Laravel申请表中创建了一个编辑表单,它接受电子邮件地址。我在服务器端使用了Laravel验证。当我传递一个明显无效的值,如'xxxxxx'时,它正在正确地验证电子邮件地址。
但问题是,当我发送一个只有顶级域而没有像'xxxxxx@ yyyyyy'这样的点的电子邮件地址时,它会接受它作为有效的电子邮件地址。
如何验证电子邮件地址以确保其使用正确的域?

gjmwrych

gjmwrych1#

Laravel 7:你可以用

'email' => 'email:rfc,dns'
2skhul33

2skhul332#

试试这个:

$this->validate($request, [            
  'email' => 'required|regex:/(.+)@(.+)\.(.+)/i',
]);
hvvq6cgz

hvvq6cgz3#

您可以简单地执行以下操作:

$validator = Validator::make($request->all(), [
        'Email'=>'required|email'
    ]);
fzwojiic

fzwojiic4#

这不是Laravel的问题。从技术上讲,这是一个有效的电子邮件地址。
请注意,如果您告诉浏览器验证电子邮件地址,它也会通过。
但是您可以使用包 EmailValidator 来验证电子邮件地址。
首先,还要检查这些:https://laravel.com/docs/6.x/validation#rule-email

或者

使用 checkdnsrr 函数。

<?php

    $email = 'email@gmail.com';
    list($username, $domain) = explode('@', $email);

    if (checkdnsrr($domain, 'MX')) {
      echo "verified";
    }
    else {
      echo "failed";
    }
qvtsj1bj

qvtsj1bj5#

Laravel电子邮件验证和唯一的电子邮件插入数据库用于代码:
'email_address' => 'required|email|unique:customers,email_address'

相关问题