Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@devmehq/email-validator-js

devmehq6.3kBSL 1.12.0.1TypeScript support: included

Advanced Email Validation with DNS MX lookup and Mailbox Verification

email-validation, email-typos, email-regex, disposable-emails, free-emails, smtp, mx-records

readme

Advanced Email Validator

NPM version Build Status Downloads UNPKG

Verify email address checking MX records, and SMTP connection, check for disposable email addresses and free email providers.

Features

✅ Check email address validity

✅ Check email address domain validity in domain TLD list

✅ Check email address MX records

✅ Check email address SMTP connection

✅ Check email address disposable or burnable status

✅ Check email address free email provider status

🚨 Check domain age and quality score - soon

🚨 Check domain registration status - soon

Use cases

  • Increase delivery rate of email campaigns by removing spam emails
  • Increase email open rate and your marketing IPs reputation
  • Protect your website from spam, bots and fake emails
  • Protect your product signup form from fake emails
  • Protect your website forms from fake emails
  • Protect your self from fraud orders and accounts using fake emails
  • Integrate email address verification into your website forms
  • Integrate email address verification into your backoffice administration and order processing

API / Cloud Hosted Service

We offer this email verification and validation and more advanced features in our Scalable Cloud API Service Offering - You could try it here Email Verification


License

email-validator-js licensed under Business Source License 1.1. The BSL allows use only for non-production purposes.

Use Case Is a commercial license required?
Exploring email-validator-js for your own research, hobbies, and testing purposes No
Using email-validator-js to build a proof-of-concept application No
Using email-validator-js to build revenue-generating applications Yes
Using email-validator-js to build software that is provided as a service (SaaS) Yes
Forking email-validator-js for any production purposes Yes

To purchase a license for uses not authorized by BSL, please contact us at sales@dev.me.


installation and usage instructions

Installation

Install the module through YARN:

yarn add @devmehq/email-validator-js

Or NPM

npm install @devmehq/email-validator-js

Examples

import { verifyEmail } from '@devmehq/email-validator-js';

const { validFormat, validSmtp, validMx } = await verifyEmail({ emailAddress: 'foo@email.com', verifyMx: true, verifySmtp: true, timeout: 3000 });
// validFormat: true
// validMx: true
// validSmtp: true

When a domain does not exist or has no MX records, the domain validation will fail, and the mailbox validation will return null because it could not be performed:

const { validFormat, validSmtp, validMx } = await verifyEmail({ emailAddress: 'foo@bad-domain.com', verifyMx: true, verifySmtp: true, timeout: 3000 });
// validFormat: true
// validMx: false
// validSmtp: null

A valid Yahoo domain will still return validSmtp true because their SMTP servers do not allow verifying if a mailbox exists.

Configuration options

timeout

Set a timeout in seconds for the smtp connection. Default: 10000.

verifyMx

Enable or disable domain checking. This is done in two steps:

  1. Verify that the domain does indeed exist;
  2. Verify that the domain has valid MX records. Default: false.

    verifySmtp

    Enable or disable mailbox checking. Only a few SMTP servers allow this, and even then whether it works depends on your IP's reputation with those servers. This library performs a best effort validation:
  3. It returns null for Yahoo addresses, for failed connections, for unknown SMTP errors.
  4. It returns true for valid SMTP responses.
  5. It returns false for SMTP errors specific to the address's formatting or mailbox existence. Default: false.

Disposable email providers database ( ✅ Always Updated )

Disposable email providers

Free email providers database ( ✅ Always Updated )

Free email providers

Testing

yarn test

Contributing

Please feel free to open an issue or create a pull request and fix bugs or add features, All contributions are welcome. Thank you!

LICENSE Business Source License 1.1

changelog

Change Log

v2.0.1

  • Update release script

v2.0.0

  • Update license from MIT to BSL-1.1
  • Improve performance use es6 set to speed up domain lookups thanks to @ArsenyYankovsky #221
  • Update dependencies
  • Update lists

v1.0.19

  • allow passing smtpPort to verifyEmail function

v1.0.18

  • Fix npm release folder

v1.0.17

  • Update dependencies
  • Update disposable email domains
  • Update free email domains

v1.0.14

  • add socket.on('timeout') event
  • add socket.on('close') event
  • enhance email regex validation

v1.0.13

  • minor refactoring
  • adding more tests and real dns tests
  • change free email domains to json file
  • change disposable email domains to json file

v1.0.12

  • change default value verifyMx to false
  • fix validMx value check when verifySmtp is true

v1.0.11

  • remove yahoo exclusion in smtp

v1.0.10

  • change response validEmailFormat to validFormat

v1.0.9

  • change response wellFormed to validEmailFormat
  • change response validDomain to validMx
  • change response validMailbox to validSmtp

v1.0.8

  • change params verifyDomain to verifyMx
  • change params verifyMailbox to verifySmtp

v1.0.7

  • Add PSL to support ( isValidEmailDomain )
  • Refactor tests

v1.0.0

  • Initial release