romanzipp/laravel-mailcheck

MailCheck.ai 可用邮箱 API 的 Laravel 封装

2.0.2 2023-09-25 16:59 UTC

This package is auto-updated.

Last update: 2024-09-05 06:37:12 UTC


README

Latest Stable Version Total Downloads License GitHub Build Status

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,
];