UNPKG

swipe-email-validator

Version:

Validates emails based on regex, common typos, disposable email blacklists, DNS records and SMTP server response.

90 lines (74 loc) 2.47 kB
# Email Validator Validates email addresses based on regex, common typos, disposable email blacklists, DNS records and SMTP server response. - Validates email looks like an email i.e. contains an "@" and a "." to the right of it. - Validates common typos e.g. example@gmaill.com using [mailcheck](https://github.com/mailcheck/mailcheck). - Validates email was not generated by disposable email service using [disposable-email-domains](https://github.com/ivolo/disposable-email-domains). - Validates MX records are present on DNS. - Validates SMTP server is running. - Validates mailbox exists on SMTP server. - Native typescript support. ## Getting Started Compatible with nodejs only. Not browser ready. Install like so ``` npm i swipe-email-validator --save ``` or with yarn ``` yarn add swipe-email-validator ``` Use like so ```typescript import { validate } from 'swipe-email-validator' const main = async () => { let res = await validate('asdf@gmail.com') // { // "valid": false, // "reason": "smtp", // "validators": { // "regex": { // "valid": true // }, // "typo": { // "valid": true // }, // "disposable": { // "valid": true // }, // "mx": { // "valid": true // }, // "smtp": { // "valid": false, // "reason": "Mailbox not found.", // } // } // } // Can also be called with these default options await validate({ email: 'name@example.org', sender: 'name@example.org', validateRegex: true, validateMx: true, validateTypo: true, validateDisposable: true, validateSMTP: true, }) } ``` If you want to validate domains with TLDs that are not supported by default, you can use `additionalTopLevelDomains` option: ```typescript await validate({ email: 'name@example.ir', sender: 'name@example.ir', validateRegex: true, validateMx: true, validateTypo: true, validateDisposable: true, validateSMTP: true, additionalTopLevelDomains: [ 'ir' ] }) ``` For a list of TLDs that are supported by default you can see [here](https://github.com/mailcheck/mailcheck/blob/afca031b4ce1cdc6e3ecbe88198f41b4835f81e3/src/mailcheck.js#L31). ## [Default options can be found here](https://github.com/Royanosh/swipe-email-validator/blob/master/src/options/options.ts#L1)