# EmailChecker
[](https://circleci.com/gh/kdisneur/email_checker/tree/master)
Simple library checking the validity of an email. Checks are performed in the
following order:
* REGEX: validate the emails has a good looking format
* MX: validate the domain sever contains MX records
* SMTP: validate the SMTP behind the MX records knows this email address (no
email sent)
:warning: That's rare but, some SMTP define a catchall email address. Meaning
all emails using this domain seems valid even if they are not.
### Installation
```elixir
# mix.exs
def application do
[mod: {YourModule, []},
applications: [..., email_checker, ...]
]
end
def deps do
[
# otherdependecies...
{:email_checker, "~> 0.0.2"}
# other dependencies...
]
end
```
### Configuration
We need to manually load DNS records to validate if a MX exists or not. When
we load the library Erlang doesn't have its DNS record list yet. So to avoid
any problem, we define a default DNS. By default the value is : `4.2.2.1`.
You can easily overide this value:
```elixir
# config/config.exs
config: :email_checker, default_dns: {4.2.2.1}
```
### Usage
```elixir
EmailChecker.valid?("kevin@disneur.me")
#=> true
EmailChecker.valid?("non-existing@disneur.me")
#=> false
```
### CHANGELOG
[CHANGELOG](https://github.com/kdisneur/email_checker/blob/master/CHANGELOG)
### LICENSE
[MIT](https://github.com/kdisneur/email_checker/blob/master/LICENSE)