Lucene search

K
kitploitKitPloitKITPLOIT:1712955777646065630
HistoryOct 27, 2023 - 8:00 p.m.

Mailchecker - Cross-language Temporary (Disposable/Throwaway) Email Detection Library. Covers 55 734+ Fake Email Providers

2023-10-2720:00:00
www.kitploit.com
24
cross-language
temporary email
validation
database
webhooks
nodejs
javascript
php

Cross-language email validation. Backed by a database of over 55 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 provide Webhooks inside your SaaS?

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

became:

import MailChecker  
if not MailChecker.is_valid('[email protected]'):  
  # ...

MailChecker currently supports:

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

Django validator: <https://github.com/jonashaag/django-indisposable&gt;

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

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 &gt; ul &gt; 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:

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

Download Mailchecker

References