lucenarenato / laravel-email-domain-blacklist
一个用于添加电子邮件域名黑名单验证规则的Laravel包
Requires
- php: ^7.2|^8.0
- illuminate/support: ^5.5|^5.8|^6.0|^7.0|^8.0|^9.0
Requires (Dev)
- mockery/mockery: ^0.9|^1.1
- phpunit/phpunit: ^5.0|^7.5|^8.0|^9.0
This package is auto-updated.
Last update: 2024-09-26 23:48:06 UTC
README
验证电子邮件输入是否不在特定域名名的黑名单中。
使用方法
将 blacklist
添加到验证规则字符串中。
public function store(Request $request) { $this->validate($request, ['email' => 'required|email|blacklist'] ); }
安装
使用composer安装此包
composer require Lucenarenato/laravel-email-domain-blacklist
此包使用 AutoDiscovery。
如果您正在使用Laravel <= 5.4,请手动将服务提供者添加到 config/app.php
中的 providers 数组中
Lucenarenato\EmailDomainBlacklist\EmailDomainBlacklistServiceProvider::class,
发布包配置
php artisan vendor:publish --provider="Lucenarenato\EmailDomainBlacklist\EmailDomainBlacklistServiceProvider" --tag=config
文档
Laravel Email Domain Blacklist 是一个轻量级的包,通过 blacklist
扩展了您的验证规则。
您可以传递包含所有黑名单电子邮件域的本地或远程JSON文件,通常是可丢弃的电子邮件服务。
如果您使用第三方远程列表,您还可以添加您自定义的电子邮件域。
您可以使用控制台命令(手动或计划)更新缓存列表。
如果您不想运行命令,希望首次验证时自动更新,则提供自动更新选项。
验证消息翻译支持英语和西班牙语;欢迎您提交翻译。
Laravel验证器
public function store(Request $request) { $this->validate($request, ['email' => 'required|email|blacklist'] ); }
配置
source: string|null
您可以指定更新黑名单的首选URL或文件路径。
如果不想使用远程源,请保持 null
。
默认值: https://raw.githubusercontent.com/ivolo/disposable-email-domains/master/index.json
cache-key: string|null
您可以更改源黑名单的缓存键。
如果想要使用默认值,请保持 null
。
auto-update: true|false
指定是否在缓存为空时自动获取源。
建议:这可能会在验证时减慢第一次请求。
默认值: false
append: string|null
您可以使用管道 |
分隔的域名列表字符串。
如果您不想添加自定义域名,请保持 null
。
示例: example.com|example.net|foobar.com
。
通过命令更新黑名单
手动更新缓存的黑名单
php artisan blacklist:update-email-domains
如果您在部署后运行此命令,并且每周/每月刷新它,这是可以的。
计划缓存的黑名单更新(示例)
// app/Console/Kernel.php @schedule // ... $schedule->command('blacklist:update-email-domains') ->monthly() ->sundays() ->at('05:00') ->withoutOverlapping() ->sendOutputTo(storage_path('logs/email-domains-blacklist.txt')); // ...
覆盖翻译
将JSON翻译键添加到您项目的核心翻译中,这将覆盖包验证消息。
测试
vendor/bin/phpunit
使用此包的项目
我创建此包是为了在我自己的应用程序 Fimedi NET 中卸载一些代码,这是一个针对营养师和患者的临床营养控制应用程序。
待办事项
- 更新项目词汇表,避免使用冒犯性词语。
贡献
请尽量遵循 psr-2 编码风格指南。 http://www.php-fig.org/psr/psr-2/
鸣谢
此包受到 Matt Kingshott 的这篇优秀文章的启发
- Renato Lucena
- 由 Ilya Volodarsky 维护 一次性电子邮件域名仓库
- 符号图标由 Gregor Cresnar 制作,来源于 www.flaticon.com