PHPackages                             printnow/free-email-checker - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Mail &amp; Notifications](/categories/mail)
4. /
5. printnow/free-email-checker

ActiveLibrary[Mail &amp; Notifications](/categories/mail)

printnow/free-email-checker
===========================

Detect whether an email is from common free or disposable email providers.

1.0.0(8mo ago)0234MITPHPPHP ^8.1CI failing

Since Oct 18Pushed 8mo agoCompare

[ Source](https://github.com/PrintNow/free-email-checker)[ Packagist](https://packagist.org/packages/printnow/free-email-checker)[ RSS](/packages/printnow-free-email-checker/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependencies (4)Versions (2)Used By (0)

Free Email Checker
==================

[](#free-email-checker)

一个简单高效的 PHP 包，用于检测邮箱是否来自免费邮箱提供商。

特性
--

[](#特性)

- ✅ PHP 8.1+ readonly 属性
- 🚀 O(1) 查找，3700+ 域名
- 🔄 每周自动更新
- 📦 Laravel 自动集成
- 🧪 完整测试覆盖

安装
--

[](#安装)

```
composer require printnow/free-email-checker
```

基础使用
----

[](#基础使用)

```
use Printnow\FreeEmailChecker\Checker;

$checker = new Checker();
$result = $checker->check('user@gmail.com');

if ($result->isFree()) {
    echo "这是免费邮箱: " . $result->getDomain();
} else {
    echo "这不是免费邮箱";
}
```

### 结果对象

[](#结果对象)

```
$result = $checker->check('user@gmail.com');

// 直接访问 readonly 属性
$result->isFree;        // bool: 是否为免费邮箱
$result->domain;        // string|null: 域名
$result->email;         // string: 原始邮箱地址

// 转换为其他格式
$result->toArray();     // array: 转为数组
$result->toJson();      // string: 转为 JSON
```

Laravel 使用
----------

[](#laravel-使用)

安装后会自动注册服务，可直接使用 Facade：

```
use Printnow\FreeEmailChecker\Laravel\FreeEmailFacade as FreeEmail;

$result = FreeEmail::check('user@gmail.com');

if ($result->isFree) {
    // 处理免费邮箱逻辑
}
```

### 在验证规则中使用

[](#在验证规则中使用)

```
use Illuminate\Validation\Validator;
use Printnow\FreeEmailChecker\Laravel\FreeEmailFacade as FreeEmail;

Validator::extend('not_free_email', function ($attribute, $value) {
    return !FreeEmail::check($value)->isFree;
});
```

测试
--

[](#测试)

```
composer test
```

性能
--

[](#性能)

- O(1) 查找复杂度
- &lt; 0.001ms/次查询
- 静态缓存，零重复 I/O

域名来源
----

[](#域名来源)

域名清单来自 [tbrianjones/free\_email\_provider\_domains](https://gist.github.com/tbrianjones/5992856)，通过 GitHub Actions 每周自动更新，包含 **3700+** 个免费邮箱域名。

License
-------

[](#license)

MIT

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance60

Regular maintenance activity

Popularity15

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

252d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3d7872292c2e55eb538a04bd5b54d7f3282d570441f6bd1df17ce9775de161e6?d=identicon)[PrintNow](/maintainers/PrintNow)

---

Top Contributors

[![PrintNow](https://avatars.githubusercontent.com/u/28396104?v=4)](https://github.com/PrintNow "PrintNow (1 commits)")

---

Tags

laravelemailemail validationfree-emaildisposable-email

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/printnow-free-email-checker/health.svg)

```
[![Health](https://phpackages.com/badges/printnow-free-email-checker/health.svg)](https://phpackages.com/packages/printnow-free-email-checker)
```

###  Alternatives

[daveearley/daves-email-validation-tool

An easy to use, accurate-ish &amp; extensible email validation library for PHP 7+

279335.8k2](/packages/daveearley-daves-email-validation-tool)[erag/laravel-disposable-email

A Laravel package to detect and block disposable email addresses.

252143.0k](/packages/erag-laravel-disposable-email)[hafael/azure-mailer-driver

Supercharge your Laravel or Symfony app with Microsoft Azure Communication Services (ACS)! Effortlessly add email, chat, voice, video, and telephony-over-IP for next-level communication. 🚀

15122.2k](/packages/hafael-azure-mailer-driver)[ashallendesign/laravel-mailboxlayer

A lightweight Laravel package for validating emails using the Mailbox Layer API.

772.2k](/packages/ashallendesign-laravel-mailboxlayer)[notebrainslab/filament-email-templates

A powerful and flexible Email Template Management plugin for Filament v4 and v5.

121.1k](/packages/notebrainslab-filament-email-templates)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
