Cross-language email validation. Backed by a database of over 55 000 throwable email domains.
became:
MailChecker currently supports:
Django validator: https://github.com/jonashaag/django-indisposable
NodeJS/JavaScript
Ruby
PHP
We accept pull-requests for other package manager.
BloggingWV
... please add your own dataset to list.txt.
- 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)
Need to provide Webhooks inside your SaaS?
- Try Hook0, an open-source self-hostable webhook micro-service
Need to embed a charts into an email?
It's over with Image-Charts, no more server-side rendering pain, 1 url = 1 chart.
코드:
https://image-charts.com/chart?
cht=lc // chart type
&chd=s:cEAELFJHHHKUju9uuXUc // chart data
&chxt=x,y // axis
&chxl=0:|0|1|2|3|4|5| // axis labels
&chs=873x200 // size
Use Image-Charts for free
Upgrade 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('[email protected]'):
# ...
코드:
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
코드:
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
코드:
<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
코드:
include __DIR__."/MailChecker/platform/php/MailChecker.php";
if(!MailChecker::isValid('[email protected]')){
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('[email protected]'):
print "O RLY !"
Ruby
코드:
require 'mail_checker'
unless MailChecker.valid?('[email protected]')
fail('O RLY!')
end
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
코드:
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
코드:
; 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
코드:
package main
import (
"log"
"github.com/FGRibreau/mailchecker/platform/go"
)
if !mail_checker.IsValid('[email protected]') {
log.Fatal('O RLY !');
}
if !mail_checker.IsValid('myemail.com') {
log.Fatal("O RLY !")
}
Installation
Gogo get https://github.com/FGRibreau/mailchecker
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
TorVPN
코드:
$('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:- Francois-Guillaume Ribreau
Contributors
These amazing people have contributed code to this project:- Owen Stephens
- Jacob Burenstam
- Herman Slatman
- trisix — view contributions
- Greenkeeper — view contributions
- Dustin Clark
- Anton Zhiyanov
- Bruel Nicolas — view contributions
- Robin — view contributions
- Spir — view contributions
- Vincent Giersch
- Adrian Carolli
- 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
- Dustin Clark
- larsvegas
- 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
- Dan McGregor — view contributions
- Thiago Rodrigues
- Dilli Labs LLC
- Kieron Lawson
- Kslr
- Lint
- chadliu23 — view contributions
- milkyklim
- Sharat M R — 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
- Francis Chuang — view contributions
- mikeyzm — view contributions
- Pascal Vizeli
- Caroline — view contributions
- Daniel Mihai
- HWVS — view contributions
- seb's — view contributions
- Chigusa0w0
- Maki
CONTRIBUTING.md
file.