romanzipp / laravel-mailcheck
MailCheck.ai 可用邮箱 API 的 Laravel 封装
2.0.2
2023-09-25 16:59 UTC
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^6.3|^7.0
- illuminate/support: ^5.5|^6.0|^7.0|^8.0|^9.0|^10.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- mockery/mockery: ^1.3.2
- orchestra/testbench: >=3.8
- phpstan/phpstan: ^0.12.99|^1.0
- phpunit/phpunit: ^8.0|^9.0
- romanzipp/php-cs-fixer-config: ^3.0
This package is auto-updated.
Last update: 2024-09-05 06:37:12 UTC
README
由 MailCheck.ai 制作的 @tompec 创建的 MailCheck.ai 可用邮箱 API 的 Laravel 封装。
✨ 从 Validator.Pizza 迁移
此包之前被称为 "Validator.Pizza"。如果您想迁移以前的安装,请参阅以下指南。
迁移指南
包名
composer remove romanzipp/laravel-validator-pizza composer require romanzipp/laravel-mailcheck
配置文件
更新配置文件名称。
- config/mailcheck.php + config/mailcheck.php
代码引用
- romanzipp\ValidatorPizza\ + romanzipp\MailCheck\
规则
- 'email' => 'required|email|validator_pizza', + 'email' => 'required|email|disposable',
表名
默认的新 表名 将是 mailcheck_checks
。如果您想保留以前的 validator_pizza
表名,请更改您的配置文件中的条目。
- validator_pizza + mailcheck_checks
功能
- 查询 MailCheck.ai API 的可用邮箱 & 域名
- 缓存响应
- 将请求的域名存储到数据库中
安装
composer require romanzipp/laravel-mailcheck
配置
将配置复制到您的项目中
php artisan vendor:publish --provider="romanzipp\MailCheck\Providers\MailCheckProvider"
运行迁移
php artisan migrate
使用方法
控制器验证
namespace App\Http\Controllers; use Illuminate\Http\Request; class HomeController extends Controller { public function handleEmail(Request $request) { $request->validate([ 'email' => 'required|email|disposable', ]); // ... } }
独立使用
$checker = new \romanzipp\MailCheck\Checker; // Validate domain $validDomain = $checker->allowedDomain('ich.wtf'); // Validate mail address (uses domain check endpoint internally) $validEmail = $checker->allowedEmail('ich@ich.wtf');
高级使用
您可以通过配置边缘情况行为来使您的可用检查更加严格或宽松。可以设置 3 种可能的输出结果
romanzipp\MailCheck\Enums\ApiIssue::ALLOW
- 允许域名/邮箱romanzipp\MailCheck\Enums\ApiIssue::DENY
- 拒绝检查过的域名/邮箱romanzipp\MailCheck\Enums\ApiIssue::EXCEPTION
- 抛出DisposableMailException
超出限制
return [ // ... 'decision_rate_limit' => \romanzipp\MailCheck\Enums\ApiIssue::EXCEPTION, ];
没有 MX DNS 记录
检查的域名上没有 MX DNS 条目,这意味着它们无法接收任何消息。
return [ // ... 'decision_no_mx' => \romanzipp\MailCheck\Enums\ApiIssue::EXCEPTION, ];
无效请求
return [ // ... 'decision_invalid' => \romanzipp\MailCheck\Enums\ApiIssue::EXCEPTION, ];