Skip to content

Elixir library for detecting disposable (burner) or non-business email addresses.

License

Notifications You must be signed in to change notification settings

remoteoss/email_guard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EmailGuard hex.pm hexdocs.pm

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 in DisposableList, 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("[email protected]")
:ok

iex> EmailGuard.check("gmail.com")
:ok

By default it will check against EmailGuard.DisposableList:

iex> EmailGuard.check("[email protected]")
{: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("[email protected]", 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.

About

Elixir library for detecting disposable (burner) or non-business email addresses.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages