EmailGuard 

Elixir library for detecting disposable (burner) or personal email addresses.
Comes with two lists:
DisposableListlargely based on this list containing 3846 domains;FreeListmostly based on this minus the domains already listed inDisposableList, total 5072 domains.
Installation
Add to your mix.exs:
def deps do
[
{:email_guard, "~> 1.0"}
]
end
If you're not using application inference, then add :email_guard to your applications list.
Usage
Checks if given email or domain is present in email lists:
iex> EmailGuard.check("svilen@gmail.com")
:ok
iex> EmailGuard.check("gmail.com")
:ok
By default it will check against EmailGuard.DisposableList:
iex> EmailGuard.check("svilen@mailinator.com")
{:error, "EmailGuard.DisposableList"}You can specify the email list modules, e.g. including the provided one for free email service providers:
iex> lists = [EmailGuard.DisposableList, EmailGuard.FreeList]
[EmailGuard.DisposableList, EmailGuard.FreeList]
iex> EmailGuard.check("svilen@gmail.com", lists)
{:error, "EmailGuard.FreeList"}
To provide your own custom list see the EmailGuard.List behaviour.
Note that EmailGuard expects a valid email address or domain as input.
Benchmark
MIX_ENV=bench mix run bench/check_bench.exsAbout
This project is sponsored by Heresy. We're always looking for great engineers to join our team, so if you love Elixir, open source and enjoy some challenge, drop us a line and say hello!
License
- EmailGuard: See LICENSE file.
- "Heresy" name and logo: Copyright © 2018 Heresy Software Ltd