node package manager
Love JavaScript? Your insights can make it even better. Take the 2017 JavaScript Ecosystem Survey »


comprehensive-email-checker Build Status

A comprehensive checker for email addresses

Currently checks:

  1. Syntax - validate the address according to RFCs 5321, 5322, and others using hapijs/isemail.
  2. Disposable addresses - test if the address is a disposable (temporary/throwaway) address, e.g., using FGRibreau/mailchecker.
  3. Suggestions - check for possible misspelling using mailcheck/mailcheck.


  1. Specific grammars of some email providers - some ESPs have their own set of rules, e.g. cannot be a valid email address. Test using tepez/comprehensive-email-checker.
  2. DNS


const EmailChecker = require('comprehensive-email-checker');

EmailChecker.validate('').then((result) => {
        isValid: true,
        isDisposableAddress: false,
        suggestion: null


validate(address, options)

Return a promise that resolves with a results object containing. If the syntax of the email was not valid, then none of the other tests will run and the results object will be:

    isValid: false,
    suggestion: null,
    isDisposableAddress: null

If the syntax is valid, then the results object will be:

{ isValid: true suggestion: An email address (string) if there is a suggestion or null if there is not isDisposableAddress: true/false this is a disposable address }

#### address
Type: `string`
#### options
Type: object
##### checkSyntaxOptions
Type: object
Options to pass to [isemail](
Default: null
#### checkSuggestionsOptions
Type: object
Default: null
Options to pass to [mailcheck](
Do not pass the `suggested` or `empty` callback options as they are used internally.