jesselpalmer / node-email-verifier

A Node.js module for verifying email addresses
MIT License
7 stars 2 forks source link
email-validation email-validator email-verification email-verifier

npm Node.js CI

Node Email Verifier

Node Email Verifier is an email validation library for Node.js that checks if an email address has a valid format and optionally verifies the domain's MX (Mail Exchange) records to ensure it can receive emails.

Features

Installation

Install the package using npm:

npm install node-email-verifier --save

Usage

Here's how to use Node Email Verifier, with and without MX record checking:

import emailValidator from 'node-email-verifier';

// Example with MX record checking
async function validateEmailWithMx(email) {
  try {
    const isValid = await emailValidator(email, { checkMx: true });
    console.log(`Is "${email}" a valid email address with MX checking?`, isValid);
  } catch (error) {
    console.error('Error validating email with MX checking:', error);
  }
}

// Example with MX record checking and custom timeout
async function validateEmailWithMxTimeout(email) {
  try {
    const isValid = await emailValidator(email, { checkMx: true, timeout: '500ms' });
    console.log(`Is "${email}" a valid email address with MX checking and custom timeout?`, isValid);
  } catch (error) {
    if (error.message.match(/timed out/)) {
      console.error('Timeout on DNS MX lookup.');
    } else {
      console.error('Error validating email with MX checking:', error);
    }
  }
}

// Example with custom timeout as a number
async function validateEmailWithMxTimeoutNumber(email) {
  try {
    const isValid = await emailValidator(email, { checkMx: true, timeout: 500 });
    console.log(`Is "${email}" a valid email address with MX checking and custom timeout?`, isValid);
  } catch (error) {
    if (error.message.match(/timed out/)) {
      console.error('Timeout on DNS MX lookup.');
    } else {
      console.error('Error validating email with MX checking:', error);
    }
  }
}

// Example without MX record checking
async function validateEmailWithoutMx(email) {
  try {
    const isValid = await emailValidator(email, { checkMx: false });
    console.log(`Is "${email}" a valid email address without MX checking?`, isValid);
  } catch (error) {
    console.error('Error validating email without MX checking:', error);
  }
}

validateEmailWithMx('test@example.com').then();
validateEmailWithMxTimeout('test@example.com').then();
validateEmailWithMxTimeoutNumber('test@example.com').then();
validateEmailWithoutMx('test@example.com').then();

API

async emailValidator(email, [opts])

Validates the given email address, with an option to skip MX record verification and set a custom timeout.

Parameters

Returns

Contributing

Contributions are always welcome! Feel free to submit a PR.

License

This project is licensed under the MIT License.