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
中的提供者数组中
Lucenarenato\EmailDomainBlacklist\EmailDomainBlacklistServiceProvider::class,
发布包配置
php artisan vendor:publish --provider="Lucenarenato\EmailDomainBlacklist\EmailDomainBlacklistServiceProvider" --tag=config
文档
Laravel Email Domain Blacklist是一个轻量级的包,它通过blacklist
扩展了您的验证规则。
您可以通过传递包含所有黑名单电子邮件域的本地或远程JSON文件来实现,通常是一次性电子邮件服务。
如果您使用第三方远程列表,您还可以添加您自己的电子邮件域。
您可以使用控制台命令(手动或计划)更新缓存的列表。
如果不想运行命令并希望在第一次验证时自动更新,则可用自动更新选项。
验证消息翻译可用英语和西班牙语;欢迎PR您的翻译。
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/
鸣谢
- Renato Lucena
- Ilya Volodarsky 为维护 一次性电子邮件域存储库 的贡献
- 符号图标由Gregor Cresnar制作,来源于www.flaticon.com