百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
M

mailchecker

> 编程语言
开源

:mailbox: 跨语言的临时 (可用/一次性) 电子邮件检测库。涵盖 55 734 多个虚假电子邮件提供商。

1.9K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

:mailbox: 跨语言的临时 (可用/一次性) 电子邮件检测库。涵盖 55 734 多个虚假电子邮件提供商。

# MailChecker [](http://bit.ly/2c7uFJq) [](https://join.slack.com/t/fgribreau/shared_invite/zt-edpjwt2t-Zh39mDUMNQ0QOr9qOj~jrg) Cross-language email validation. Backed by a [database](./list.txt) of **over 55 000 throwable email domains**. * Validate the format of your email (uses [validator.js](https://github.com/chriso/validator.js/blob/master/validator.js#L38) email regex underneath and `FILTER_VALIDATE_EMAIL` for PHP) * Validate if the email is not a **temporary mail** (yopmail-like..., [add your own dataset to list.txt](./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](mailto:[email protected]) ------------------------ # Upgrade ## From 3.x to 4.x - PHP ```php # import using the fully qualified name. use Fgribreau\MailChecker; // ... echo MailChecker::isValid('[email protected]'); ``` ## 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 ```python import MailChecker m = MailChecker.MailChecker() if not m.is_valid('[email protected]'): # ... ``` became: ```python import MailChecker if not MailChecker.is_valid('[email protected]'): # ... ``` ------------------------- MailChecker currently supports: * [NodeJS](https://github.com/FGRibreau/mailchecker/tree/master/platform/node) (CommonJS, [Instructions](#nodejs)) * [JavaScript](https://github.com/FGRibreau/mailchecker/tree/master/platform/javascript) (Client-Side, [Instructions](#javascript)) * [PHP](https://github.com/FGRibreau/mailchecker/tree/master/platform/php) ([Instructions](#php)) * [Python](https://github.com/FGRibreau/mailchecker/tree/master/platform/python) ([Instructions](#python)) * [Ruby](https://github.com/FGRibreau/mailchecker/tree/master/platform/ruby) ([Instructions](#ruby)) * [Rust](https://github.com/FGRibreau/mailchecker/tree/master/platform/rust) ([Instructions](#rust)) * [Elixir](https://github.com/FGRibreau/mailchecker/tree/master/platform/elixir) ([Instructions](#elixir)) * [Clojure](https://github.com/FGRibreau/mailchecker/tree/master/platform/clojure) ([Instructions](#clojure)) * [Go](https://github.com/FGRibreau/mailchecker/tree/master/platform/go) ([Instructions](#go)) * **Easily add support for your own language with MailChecker template system and [send us a pull-request!](https://github.com/FGRibreau/mailchecker/fork_select)** ------------------------- ## Usage ### NodeJS ```javascript var MailChecker = require('mailchecker'); if(!MailChecker.isValid('[email protected]')){ console.error('O RLY !'); process.exit(1); } if(!MailChecker.isValid('myemail.com')){ console.error('O RLY !'); process.exit(1); } ``` ### JavaScript ```html ``` ### PHP ```php use Fgribreau\MailChecker; require __DIR__ . '/vendor/autoload.php'; if(!MailChecker::isValid('[email protected]')){ die('O RLY !'); } if(!MailChecker::isValid('myemail.com')){ die('O RLY !'); } ``` ### Python ``` pip install mailchecker ``` ```python # no package yet; just drop in MailChecker.py where you want to use it. from MailChecker import MailChecker if not MailChecker.is_valid('[email protected]'): print("O RLY !") ``` Django validator: https://github.com/jonashaag/django-indisposable ### Ruby ```ruby require 'mail_checker' unless MailChecker.valid?('[email protected]') fail('O RLY!') end ``` ### Rust ```rust extern crate mailchecker; assert_eq!(true, mailchecker::is_valid("[email protected]")); assert_eq!(false, mailchecker::is_valid("\[email protected]\n")); assert_eq!(false, mailchecker::is_valid("[email protected]")); ``` ### Elixir ```elixir Code.require_file("mail_checker.ex", "mailchecker/platform/elixir/") unless MailChecker.valid?("[email protected]") do raise "O RLY !" end unless MailChecker.valid?("myemail.com") do raise "O RLY !" end ``` ### Clojure ```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? "[email protected]")) (throw (Throwable. "O RLY!"))) (if (not (mailchecker/valid? "myemail.com")) (throw (Throwable. "O RLY!"))) ``` ### Go ```go package main import ( "log" mail_checker "github.com/FGRibreau/mailchecker/v6/platform/go" ) if !mail_checker.IsValid("[email protected]") { log.Fatal("O RLY !"); } if !mail_checker.IsValid("myemail.com") { log.Fatal("O RLY !") } ``` -------------------- ## Installation Go ```bash go get github.com/FGRibreau/mailchecker/v6/platform/go ``` NodeJS/JavaScript ```bash npm install mailchecker ``` Ruby ```bash gem install ruby-mailchecker ``` PHP ```bash composer require fgribreau/mailchecker ``` __We accept pull-requests for other package manager__. ## Data sources [TorVPN](http://torvpn.com/temporaryemail.html) ```javascript $('td', 'table:last').map(function(){ return this.innerText; }).toArray(); ``` [BloggingWV](http://www.bloggingwv.com/big-list-of-disposable-temporary-email-services/) ```javascript Array.prototype.slice.call(document.querySelectorAll('.entry > ul > li a')).map(function(el){return el.innerText}); ``` ... [please add your own dataset to list.txt](./list.txt). Regenerate libraries from list.txt ------------------------------- Just run (requires NodeJS): ``` npm run build ``` ## Development Development environment requires [docker](https://www.docker.com/). ```sh # 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:
  • Francois-Guillaume Ribreau

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

GitHub Issues· 0 开放

在 GitHub 查看全部

暂无开放 Issues,或尚未同步最近议题。

核心特点

  • •Validate the format of your email (uses validator.js email regex underneath and FILTER_VALIDATE_EMAIL for PHP)
  • •Validate if the email is not a temporary mail (yopmail-like..., add your own dataset to list.txt)
  • •NodeJS/JavaScript: MailChecker(email) -> MailChecker.isValid(email)
  • •PHP: MailChecker($email) -> MailChecker::isValid($email)
  • •NodeJS (CommonJS, Instructions)
  • •JavaScript (Client-Side, Instructions)
  • •PHP (Instructions)
  • •Python (Instructions)
  • •Ruby (Instructions)
  • •Rust (Instructions)

> 标签

PHPemailemail-validationemail-verification

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言