EmailGuard

Elixir library for detecting disposable (burner) or personal email addresses.
Comes with two lists:
DisposableList
largely based on this list containing 3846 domains;FreeList
mostly 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.exs
About
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