fgribreau/mailchecker
Composer 安装命令:
composer require fgribreau/mailchecker
包简介
Temporary (disposable/throwaway) email detection library. Covers 1987 fake email providers.
关键字:
README 文档
README
Cross-language email validation. Backed by a database of over 55 000 throwable email domains.
- Validate the format of your email (uses validator.js email regex underneath and
FILTER_VALIDATE_EMAILfor PHP) - Validate if the email is not a temporary mail (yopmail-like..., add your own dataset to list.txt)
This will be very helpful when you have to contact your users and you want to avoid errors causing lack of communication or want to block "spamboxes".
Sponsors
|
France-Nuage Sovereign French cloud for your signup pipeline. No vendor lock-in. |
![]() Hook0 Send signup events as signed webhooks. Self-hosted, retry built-in. |
Natalia Catch the leads that signed up with bad emails — Natalia calls them back. |
Netir Hire vetted French freelance backend devs through mentored marketplace. |
|
NoBullshitConseil No-bullshit tech advisory. Founders & CTOs get straight answers. |
Qualneo Qualiopi LMS for French trainers. 32 indicators wired in, audit-ready. |
![]() Recapro Private AI that transcribes meetings & drafts reports. Sovereign hosting. |
Interested in sponsoring? Get in touch
Upgrade
From 3.x to 4.x
- PHP
# import using the fully qualified name. use Fgribreau\MailChecker; // ... echo MailChecker::isValid('myemail@yopmail.com');
From 1.x to 3.x
Mailchecker public API has been normalized, here are the changes:
- NodeJS/JavaScript:
MailChecker(email)->MailChecker.isValid(email) - PHP:
MailChecker($email)->MailChecker::isValid($email) - Python
import MailChecker m = MailChecker.MailChecker() if not m.is_valid('bla@example.com'): # ...
became:
import MailChecker if not MailChecker.is_valid('bla@example.com'): # ...
MailChecker currently supports:
- NodeJS (CommonJS, Instructions)
- JavaScript (Client-Side, Instructions)
- PHP (Instructions)
- Python (Instructions)
- Ruby (Instructions)
- Rust (Instructions)
- Elixir (Instructions)
- Clojure (Instructions)
- Go (Instructions)
- Easily add support for your own language with MailChecker template system and send us a pull-request!
Usage
NodeJS
var MailChecker = require('mailchecker'); if(!MailChecker.isValid('myemail@yopmail.com')){ console.error('O RLY !'); process.exit(1); } if(!MailChecker.isValid('myemail.com')){ console.error('O RLY !'); process.exit(1); }
JavaScript
<script type="text/javascript" src="MailChecker/platform/javascript/MailChecker.js"></script> <script type="text/javascript"> if(!MailChecker.isValid('myemail@yopmail.com')){ console.error('O RLY !'); } if(!MailChecker.isValid('myemail.com')){ console.error('O RLY !'); } </script>
PHP
use Fgribreau\MailChecker; require __DIR__ . '/vendor/autoload.php'; if(!MailChecker::isValid('myemail@yopmail.com')){ die('O RLY !'); } if(!MailChecker::isValid('myemail.com')){ die('O RLY !'); }
Python
pip install mailchecker
# no package yet; just drop in MailChecker.py where you want to use it. from MailChecker import MailChecker if not MailChecker.is_valid('bla@example.com'): print("O RLY !")
Django validator: https://github.com/jonashaag/django-indisposable
Ruby
require 'mail_checker' unless MailChecker.valid?('myemail@yopmail.com') fail('O RLY!') end
Rust
extern crate mailchecker; assert_eq!(true, mailchecker::is_valid("plop@plop.com")); assert_eq!(false, mailchecker::is_valid("\nok@gmail.com\n")); assert_eq!(false, mailchecker::is_valid("ok@guerrillamailblock.com"));
Elixir
Code.require_file("mail_checker.ex", "mailchecker/platform/elixir/") unless MailChecker.valid?("myemail@yopmail.com") do raise "O RLY !" end unless MailChecker.valid?("myemail.com") do raise "O RLY !" end
Clojure
; no package yet; just drop in mailchecker.clj where you want to use it. (load-file "platform/clojure/mailchecker.clj") (if (not (mailchecker/valid? "myemail@yopmail.com")) (throw (Throwable. "O RLY!"))) (if (not (mailchecker/valid? "myemail.com")) (throw (Throwable. "O RLY!")))
Go
package main import ( "log" mail_checker "github.com/FGRibreau/mailchecker/v6/platform/go" ) if !mail_checker.IsValid("myemail@yopmail.com") { log.Fatal("O RLY !"); } if !mail_checker.IsValid("myemail.com") { log.Fatal("O RLY !") }
Installation
Go
go get github.com/FGRibreau/mailchecker/v6/platform/go
NodeJS/JavaScript
npm install mailchecker
Ruby
gem install ruby-mailchecker
PHP
composer require fgribreau/mailchecker
We accept pull-requests for other package manager.
Data sources
$('td', 'table:last').map(function(){ return this.innerText; }).toArray();
Array.prototype.slice.call(document.querySelectorAll('.entry > ul > li a')).map(function(el){return el.innerText});
... please add your own dataset to list.txt.
Regenerate libraries from list.txt
Just run (requires NodeJS):
npm run build
Development
Development environment requires docker.
# install and setup every language dependencies in parallel through docker npm install # run every language setup in parallel through docker npm run setup # run every language tests in parallel through docker npm test
Backers
Maintainers
These amazing people are maintaining this project:
Sponsors
No sponsors yet! Will you be the first?
Contributors
These amazing people have contributed code to this project:
- Owen Stephens
- Jacob Burenstam Linder
- Herman Slatman
- trisix — view contributions
- Greenkeeper
- Dustin Clark
- Anton Zhiyanov
- Bruel Nicolas — view contributions
- Robin — view contributions
- Spir — view contributions
- Vincent Giersch
- Adrian Carolli — view contributions
- Dave Powers
- Frank Phillips — view contributions
- LuckyDino — view contributions
- ven — view contributions
- Romain Gay
- Sebastian Cohnen
- Dalai — view contributions
- quaswex — view contributions
- sxyuan — view contributions
- Francois-Guillaume Ribreau
- Dusty — view contributions
- larsvegas — view contributions
- Zeeshan Muhammad
- kkleejoe — view contributions
- Luiz Freneda
- thorinisme — view contributions
- Liudas Šumskas — view contributions
- Alexander — view contributions
- Alex Domakidis
- Carlos Rios
- Jacek Bzdak — view contributions
- D — view contributions
- Jonas Haag
- Alex Domakidis — view contributions
- Dan McGregor — view contributions
- Thiago Rodrigues
- Dilli Labs LLC
- Kieron Lawson
- Kslr
- Lint
- chadliu23 — view contributions
- milkyklim
- Sharat MR — view contributions
- Nicolas Perraud — view contributions
- tbdmainrepo — view contributions
- Kslr — view contributions
- Fabio Caccamo
- cyril souillard — view contributions
- Grégoire Pineau
- Bruno Bossola
- florian-crtl — view contributions
- mikeyzm
- Grégoire Pineau
- alonga — view contributions
- Vitalii Tverdokhlib — view contributions
- Francis Chuang — view contributions
- mikeyzm — view contributions
- Pascal Vizeli
- Caroline — view contributions
- Daniel Mihai
- HWVS — view contributions
- seb's — view contributions
- Chigusa0w0
- Maki
Discover how you can contribute by heading on over to the CONTRIBUTING.md file.
Changelog
License
Unless stated otherwise all works are:
- Copyright © Francois-Guillaume Ribreau
and licensed under:
fgribreau/mailchecker 适用场景与选型建议
fgribreau/mailchecker 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 692.85k 次下载、GitHub Stars 达 1.89k, 最近一次更新时间为 2016 年 03 月 21 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「email」 「fake」 「detection」 「disposable」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 fgribreau/mailchecker 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 fgribreau/mailchecker 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 fgribreau/mailchecker 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Shim repository for phpmd/phpmd
Language detection in PSR-15 middleware
Mocks, stubs, and spies for PHP.
Phony for Kahlan.
Mock PSR-18 HTTP client
统计信息
- 总下载量: 692.85k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1892
- 点击次数: 31
- 依赖项目数: 3
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2016-03-21

