Nostradamus Predicting Maelstroms
    Have ideas to improve npm?Join in the discussion! »

    mailchecker
    TypeScript icon, indicating that this package has built-in type declarations

    4.0.9 • Public • Published

    MailChecker

    Deps Downloads

    NPM version npm Gem version Gem PyPi version PyPI - Downloads Packagist version Packagist Cargo version Crates.io GoDoc

    Get help on Codementor available-for-advisory extra Slack

    Cross-language email validation. Backed by a database of over 30 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:

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


    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

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

    go 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();

    BloggingWV

      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?

    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:

    Changelog

    License

    Unless stated otherwise all works are:

    and licensed under:

    Install

    npm i mailchecker

    DownloadsWeekly Downloads

    8,802

    Version

    4.0.9

    License

    MIT

    Unpacked Size

    807 kB

    Total Files

    5

    Last publish

    Collaborators

    • avatar