veeqtoh/laravel-active-email

提供针对一次性电子邮件地址验证规则的Laravel扩展包。

v1.0.1 2024-06-21 14:23 UTC

This package is auto-updated.

Last update: 2024-09-25 23:15:23 UTC


README

Latest Version on Packagist Total Downloads PHP from Packagist GitHub license

目录

概述

此包提供了一组一次性电子邮件域库,并为Laravel应用程序添加了一个验证器,以检查给定的电子邮件地址是否不是来自如MailinatorGuerillamailTempmail等一次性电子邮件服务,同时考虑了所有可能的通配符。

主要特性

  • 您可以将自己的首选域添加到黑名单中。
  • 您可以通过白名单来绕过黑名单。这在开发环境中可能很有用。
  • 使用严格模式,您可以选择验证器的严格程度,从而允许或阻止那些不一定是一次性的,但已被分类为一次性的域。
  • 大小写敏感。
  • 通配符敏感。

安装

要求

本包已开发并测试,以确保与以下最低要求兼容

  • PHP 8.x
  • Laravel 10.x, 11.x

安装包

您可以通过Composer安装此包。服务提供者将自动发现。

composer require veeqtoh/laravel-active-email

发布配置

然后,您可以发布包的配置文件并根据需要更新它

php artisan vendor:publish --provider="Veeqtoh\ActiveEmail\Providers\ActiveEmailProvider"

用法

验证器方法

notblacklisted验证器添加到您的电子邮件验证规则数组(或字符串)中,以确保给定的电子邮件地址的域不在黑名单中。我建议您在电子邮件验证器之后添加它,以确保有效的电子邮件通过

'emailField' => 'email|notblacklisted',

或者

'emailField' => ['email', 'notblacklisted'],

类方法

NotBlackListedEmail类作为电子邮件验证规则数组的一部分实例化,以确保给定的电子邮件地址的域不在黑名单中。同样,我建议您在电子邮件验证器之后添加它,以确保有效的电子邮件通过

use Veeqtoh\ActiveEmail\Rules\NotBlackListedEmail;

'emailField' => ['email', new NotBlackListedEmail()],

自定义

您可以通过以下特性从配置文件中高度自定义此包

严格模式

此值确定此功能的严格程度。当设置为true时,灰名单中的域也会被黑名单。

默认开启,但可以在您的.env文件中如下设置

DISPOSABLE_EMAIL_STRICT_MODE=true,

黑名单

这是一个默认黑名单的基础域列表,包括或不包括TLD。将域添加到此列表中以将其黑名单。

灰名单

这是一个默认不黑名单的基础域列表,不包括TLD,除非在严格模式下。将域添加到此列表中,以便在非严格模式下将其列入白名单。请确保域不在黑名单中。

白名单

这是一个默认黑名单的基础域列表,不包括TLD,但您希望绕过它们。

待办事项

总有可以改进此包的地方。我会随着想法的产生不断更新此列表。

  • 爬取网络以获取更新的一次性域列表。
  • 也许可以为其设置一个计划...

测试

要运行包的单元测试,请运行以下命令:

vendor/bin/pest

安全

如果您发现任何与安全相关的问题,请直接通过victorjohnukam@gmail.com联系我,以便报告。

贡献

如果您想对该包进行任何更改或改进,请随时提交pull request。

注意:将很快添加贡献指南。

变更日志

查看变更日志以获取有关最新更改的更多信息。

升级

查看升级指南以获取有关如何更新此库到新版本的更多信息。

许可证

MIT许可(MIT)。请参阅许可文件以获取更多信息。

支持我

如果您觉得这个包很有用,请考虑赞助此项目。这将鼓励我继续维护它。