1.1.2 • Published 8 months ago

@ph7/real-email-validation v1.1.2

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

MX Record Email Validation

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

Self-hosting - installation and usage instructions

Installation

Install the module through YARN:

yarn add @ph7/real-email-validation

Or NPM

npm install @ph7/real-email-validation

Examples

import { verifyEmail } from '@ph7/real-email-validation';

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

if (validFormat === false || validMx === false || validSmtp === false) {
    // invalid/un-existent email address
}

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:

  • It returns null for Yahoo addresses, for failed connections, for unknown SMTP errors.
  • It returns true for valid SMTP responses.
  • It returns false for SMTP errors specific to the address's formatting or mailbox existence. Default: false (recommended).

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 MIT