leg

legit

NodeJS library for checking MX records exist on a domain

Showing:

Popularity

Downloads/wk

3.4K

GitHub Stars

96

Maintenance

Last Commit

1yr ago

Contributors

2

Package

Dependencies

0

Size (min+gzip)

0.3KB

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Readme

Legit

Travis CI

A wrapper for the NodeJS Dns.resolveMx method that checks the domain of an email address for valid/existence of MX records.

Installation

$ npm install legit

Usage

const legit = require('legit');

legit('validemail@validdomain.com')
  .then(result => {
    result.isValid ? console.log('Valid!') : console.log('Invalid!');
    console.log(JSON.stringify(result));
  })
  .catch(err => console.log(err));

If an email addresses domain is legit then the object returned will include an isValid key that will be set to true as well as an mxArray key with all the MX record information for the valid domain.

If the domain has no MX or cannot resolve any MX then it will return isValid as false.

Anything else is considered an error and you'll get it in the .catch

Async/Await Usage

For a more modern approach using ES6, you can await the reponse before acting on it.

const legit = require('legit');

(async () => {
  try {
    const response = await legit('validemail@validdomain.com');
    response.isValid ? console.log('valid') : console.log('invalid');
  } catch (e) {
    console.log(e);
  }
})();

Example Response

For a valid email address, you'll get the following response object:

{
  "isValid": true,
  "mxArray": [
    {
      "exchange": "aspmx.l.google.com",
      "priority": 1
    },
    {
      "exchange": "alt1.aspmx.l.google.com",
      "priority": 5
    },
    {
      "exchange": "alt2.aspmx.l.google.com",
      "priority": 5
    },
    {
      "exchange": "alt3.aspmx.l.google.com",
      "priority": 10
    },
    {
      "exchange": "alt4.aspmx.l.google.com",
      "priority": 10
    }
  ]
}

License

(The MIT License)

Copyright (c) 2015-2020 Martyn Davies, and contributors.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial