Popularity
2.2
Growing
Activity
3.6
-
10
1
2

Description

Elixir library for detecting disposable (burner) or personal email addresses.

Comes with two lists:

`DisposableList` — containing 3846 domains of free email providers; `FreeList` — providers of temporary email addresses, total 5072 domains.

Configurable and easily extendable with your own custom lists.

Monthly Downloads: 128
Programming language: Elixir
License: MIT License
Tags: Applications     Email     Security    
Latest version: v1.1.3

EmailGuard alternatives and similar packages

Based on the "Security" category

Do you think we are missing an alternative of EmailGuard or a related project?

Add another 'Security' Package

README

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("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.


*Note that all licence references and agreements mentioned in the EmailGuard README section above are relevant to that project's source code only.