alariva / laravel-email-domain-blacklist
用于添加电子邮件域名黑名单验证规则的 Laravel 扩展包
Requires
- php: ^7.2|^8.0
- illuminate/support: ^5.8|^6.0|^7.0|^8.0|^9.0
- laravel/framework: ^5.8|^6.0|^7.0|^8.0|^9.0
Requires (Dev)
- mockery/mockery: ^1.1
- orchestra/testbench: ^3.9|^4.0|^7.0
- phpunit/phpunit: ^7.5|^8.0|^9.0
README
验证电子邮件输入是否未被特定域名列入黑名单。
用法
将 blacklist
添加到验证规则字符串中。
public function store(Request $request) { $this->validate($request, ['email' => 'required|email|blacklist'] ); }
安装
使用 composer 需求此包
composer require alariva/laravel-email-domain-blacklist
此包使用 AutoDiscovery。
如果您正在使用 Laravel <= 5.4,请手动将服务提供者添加到 config/app.php
文件中的 providers 数组中
Alariva\EmailDomainBlacklist\EmailDomainBlacklistServiceProvider::class,
发布包配置
php artisan vendor:publish --provider="Alariva\EmailDomainBlacklist\EmailDomainBlacklistServiceProvider" --tag=config
文档
Laravel Email Domain Blacklist 是一个轻量级的包,通过 blacklist
扩展了您的验证规则。
您可以通过传递包含所有黑名单电子邮件域名的本地或远程 JSON 文件来实现,通常为一次性电子邮件服务。
如果您使用第三方远程列表,您还可以附加您自己的电子邮件域名。
您可以通过控制台命令(手动或计划)更新缓存的列表。
如果不想运行命令,您可以选择在第一次验证时自动更新。
验证消息翻译支持英语和西班牙语;欢迎提交您的翻译。
Laravel 验证器
public function store(Request $request) { $this->validate($request, ['email' => 'required|email|blacklist'] ); }
配置
source: 字符串|null
您可以指定用于更新黑名单的首选 URL 或文件路径。
如果您不想使用远程源,请保持 null
。
默认值: https://raw.githubusercontent.com/ivolo/disposable-email-domains/master/index.json
cache-key: 字符串|null
您可以更改源黑名单的缓存键。
如果您想使用默认值,请保持 null
。
auto-update: true|false
指定当缓存为空时是否应自动获取源。
建议:这可能会在验证时减慢第一个请求。
默认值: false
append: 字符串|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 在此优秀帖子上的启发 https://medium.com/@mattkingshott/laravel-validation-rule-block-disposable-email-blacklisted-domains-949cab9c59fe
- Ariel Vallese
- Ilya Volodarsky 为维护 disposable email domains 存储库 贡献
- 符号图标由Gregor Cresnar设计,来自www.flaticon.com