Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
M

mailchecker

> 编程语言
Open source

:mailbox: Cross-language temporary (disposable/throwaway) email detection library. Covers 55 734+ fake email providers.

1.9K stars0 likes0 views
WebsiteGitHub

About

:mailbox: Cross-language temporary (disposable/throwaway) email detection library. Covers 55 734+ fake email providers.

MailChecker

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_EMAIL for 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
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 (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

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

xml
<script type="text/javascript" src="MailChecker/platform/javascript/MailChecker.js"></script>
<script type="text/javascript">
if(!MailChecker.isValid('[email protected]')){
  console.error('O RLY !');
}

if(!MailChecker.isValid('myemail.com')){
  console.error('O RLY !');
}
</script>

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

bash
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

javascript
  $('td', 'table:last').map(function(){
    return this.innerText;
  }).toArray();

BloggingWV

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.

Regenerate libraries from list.txt

Just run (requires NodeJS):

bash
npm run build

Development

Development environment requires docker.

bash
# 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

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

PHPemailemail-validationemail-verification

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

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