EmailGuard [](https://hex.pm/packages/emailguard) [](https://hexdocs.pm/emailguard)
March 24, 2020 · View on GitHub
Elixir library for detecting disposable (burner) or personal email addresses.
Focused on performance and features the largest database of domains availble.
Comes with two lists out of the box:
DisposableList- based on mailchecker's list, total 33,606 domains;FreeList- based on this list excl. already listed inDisposableList, total 5009 domains.
You can also plug your own dataset by implementing the EmailGuard.List behaviour ✌️
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
License
See LICENSE file.