MailChecker

PyPi version PyPI - Downloads

Cargo version Crates.io

NPM version npm

Gem version Gem

Packagist version Packagist

GoDoc

Get help on Codementor available-for-advisory extra Slack

Cross-language email validation. Backed by a database of over 38 000 throwable email domains.

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".


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:

python import MailChecker m = MailChecker.MailChecker() if not m.is_valid('bla@example.com'): # ...

became:

python 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

```javascript 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

```html

```

PHP

```php include DIR."/MailChecker/platform/php/MailChecker.php";

if(!MailChecker::isValid('myemail@yopmail.com')){ 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('bla@example.com'): print "O RLY !" ```

Django validator: https://github.com/jonashaag/django-indisposable

Ruby

```ruby require 'mail_checker'

unless MailChecker.valid?('myemail@yopmail.com') fail('O RLY!') end ```

Rust

```rust extern crate mailchecker;

asserteq!(true, mailchecker::isvalid("plop@plop.com")); asserteq!(false, mailchecker::isvalid("\nok@gmail.com\n")); asserteq!(false, mailchecker::isvalid("ok@guerrillamailblock.com")); ```

Elixir

```elixir Code.requirefile("mailchecker.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

```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

```go package main

import ( "log"

"github.com/FGRibreau/mailchecker/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 bash go get https://github.com/FGRibreau/mailchecker

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):

npm run build

Development

Development environment requires docker.

```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:

Sponsors

No sponsors yet! Will you be the first?

Patreon donate button Gratipay donate button Flattr donate button PayPal donate button crypto donate button

Contributors

These amazing people have contributed code to this project:

Discover how you can contribute by heading on over to the CONTRIBUTING.md file.

Changelog

License

Unless stated otherwise all works are:

and licensed under: