文件数据/laravel-email-validator

一个比Laravel默认提供的更全面的电子邮件验证规则。

v3.0.0 2022-10-18 08:25 UTC

This package is auto-updated.

Last update: 2024-09-18 12:44:16 UTC


README

一个比Laravel默认提供的更全面的电子邮件验证规则。

Laravel 电子邮件验证器

Latest Stable Version Build Status Total Downloads StyleCI Software License

Laravel 电子邮件验证器通过扩展Laravel验证器并添加validate_email规则。

如何安装它?

最简单的方法是使用Composer

要安装Laravel 电子邮件验证器的最新版本,请运行以下命令

composer require dossierdata/laravel-email-validator

然后在config/app.php中注册服务提供者

'providers' => [
    ...
    Dossierdata\LaravelEmailValidator\ServiceProvider::class,
    Dossierdata\LaravelEmailValidator\BootServiceProvider::class,
],

需求

  • Laravel 5.0及以上

如何使用它?

目前有四种不同的规则可供选择

  • rfc - 验证提供的值是否符合RFC 5321RFC 5322
  • rfc_no_warning - 与前面的规则相同,但会在警告时失败
  • spf:127.0.0.1 - 验证电子邮件的域名是否有正确的SPF记录,并且提供的IP地址/范围是否被授权用于该域名
  • dns - 通过检查MX或DSN记录来验证电子邮件的域名实际上是否存在

将其用作验证器的规则

<?php

// Rule without parameters will default to only checking RFC
$validator = \Validator::make([
    'email' => '.incorrect@email.nodomain'
], [
    'email' => 'validate_email',
]);

if ($validator->fails()) {
    dump($validator->errors());
}

// Rule with parameters
$validator = \Validator::make([
    'email' => '.incorrect@email.nodomain'
], [
    'email' => 'validate_email:rfc,spf:127.0.0.1,dns',
]);

if ($validator->fails()) {
    dump($validator->errors());
}

通过依赖注入使用

<?php

$rules = [
    'rfc',
    'spf:127.0.0.1',
    'dns'
];

$emailValidator = app(\Dossierdata\LaravelEmailValidator\Contracts\EmailValidator::class);

if (!$emailValidator->validateValue('.incorrect@email.nodomain', $rules)) {
    dump($emailValidator->errors());
}

贡献

请参阅此项目的贡献指南

许可证

dossierdata/laravel-email-validator是开源软件,许可协议为MIT许可证