๐Ÿš€ Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more โ†’
Socket
Book a DemoInstallSign in
Socket

robust-email-validator

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

robust-email-validator

A comprehensive email validation library with format, DNS, and deliverability checking

1.0.1
latest
Source
npm
Version published
Weekly downloads
110
Maintainers
1
Weekly downloads
ย 
Created
Source

๐Ÿš€ Robust Email Validator

npm version Downloads License: MIT TypeScript Node.js CI codecov

The most comprehensive email validation library for JavaScript & TypeScript ๐Ÿ“งโœจ

A lightweight, fast, and developer-friendly email validation library that provides multiple layers of validation including RFC 5322 compliance, DNS/MX record verification, and real-time deliverability checking through popular APIs.

๐ŸŒŸ Why Choose Robust Email Validator?

  • โœ… RFC 5322 Compliant - Industry-standard email format validation
  • ๐ŸŒ DNS & MX Verification - Check if domains can actually receive emails
  • ๐Ÿ“ง Deliverability Testing - Integration with ZeroBounce, Mailgun, and Hunter APIs
  • ๐Ÿš€ Lightning Fast - Optimized performance with minimal dependencies
  • ๐Ÿ”ง Highly Configurable - Choose exactly which validation layers you need
  • ๐Ÿ“ฑ Universal Support - Works in Node.js, browsers, React, Vue, Angular
  • ๐Ÿ’ช TypeScript First - Full type safety with excellent IntelliSense
  • ๐Ÿ“Š Batch Processing - Validate thousands of emails efficiently
  • ๐Ÿ›ก๏ธ Production Ready - Used by companies worldwide

๐Ÿš€ Quick Start

Installation

```bash npm install robust-email-validator ```

Basic Usage

```javascript import { EmailValidator } from 'robust-email-validator';

// Quick format validation const isValid = EmailValidator.validateFormat('user@example.com'); console.log(isValid); // true

// Comprehensive validation const validator = new EmailValidator({ checkFormat: true, checkDNS: true, checkDeliverability: true, apiProvider: 'zerobounce', apiKey: 'your-api-key' });

const result = await validator.validate('user@example.com'); console.log(result.isValid); // true/false console.log(result.details); // Detailed validation results ```

๐Ÿ“‹ Table of Contents

โœจ Features

๐ŸŽฏ Multiple Validation Layers

FeatureDescriptionNode.jsBrowser
Format ValidationRFC 5322 compliant regex validationโœ…โœ…
DNS VerificationCheck if domain existsโœ…โŒ
MX Record CheckVerify mail server configurationโœ…โŒ
DeliverabilityReal-time API validationโœ…โœ…*

*Subject to CORS policies

๐Ÿ”Œ API Integrations

  • ZeroBounce - Industry-leading email validation
  • Mailgun - Reliable email verification service
  • Hunter - Professional email finder and verifier

๐Ÿ› ๏ธ Developer Experience

  • Zero Configuration - Works out of the box
  • Flexible Options - Enable only what you need
  • Detailed Results - Comprehensive validation reports
  • Error Handling - Graceful failure with detailed error messages
  • TypeScript Support - Full type definitions included

๐Ÿ“ฆ Installation

```bash

npm

npm install robust-email-validator

yarn

yarn add robust-email-validator

pnpm

pnpm add robust-email-validator ```

๐Ÿ”ฅ Quick Examples

Format Validation Only

```javascript import { EmailValidator } from 'robust-email-validator';

// Synchronous format checking const emails = [ 'valid@example.com', // โœ… Valid 'invalid-email', // โŒ Invalid 'user+tag@domain.co.uk' // โœ… Valid ];

emails.forEach(email => { const isValid = EmailValidator.validateFormat(email); console.log(`${email}: ${isValid ? 'โœ…' : 'โŒ'}`); }); ```

Comprehensive Validation

```javascript const validator = new EmailValidator({ checkFormat: true, checkDNS: true, checkMX: true, checkDeliverability: true, apiProvider: 'zerobounce', apiKey: process.env.ZEROBOUNCE_API_KEY, timeout: 10000 });

const result = await validator.validate('user@example.com');

console.log('Email:', result.email); console.log('Valid:', result.isValid); console.log('Errors:', result.errors); console.log('Warnings:', result.warnings);

// Detailed breakdown if (result.details.format) { console.log('Format valid:', result.details.format.isValid); } if (result.details.dns) { console.log('Domain exists:', result.details.dns.isValid); console.log('MX records:', result.details.dns.mxRecords); } if (result.details.deliverability) { console.log('Deliverable:', result.details.deliverability.isDeliverable); console.log('Confidence:', result.details.deliverability.confidence); } ```

Batch Validation

```javascript const emails = [ 'user1@example.com', 'user2@invalid-domain.xyz', 'invalid-format-email' ];

const results = await validator.validateBatch(emails);

console.log('Summary:', results.summary); // { total: 3, valid: 1, invalid: 2, processed: 3, failed: 0 }

results.results.forEach(result => { console.log(`${result.email}: ${result.isValid ? 'โœ…' : 'โŒ'}`); }); ```

Browser Usage

```javascript // Browser-safe configuration const validator = new EmailValidator({ checkFormat: true, checkDeliverability: true, apiProvider: 'mailgun', apiKey: 'your-mailgun-key' });

// Use in form validation document.getElementById('email-form').addEventListener('submit', async (e) => { e.preventDefault(); const email = document.getElementById('email').value;

const result = await validator.validate(email); if (result.isValid) { // Proceed with form submission console.log('Email is valid!'); } else { // Show validation errors console.log('Errors:', result.errors); } }); ```

๐Ÿ”ง Configuration Options

```typescript interface EmailValidationOptions { checkFormat?: boolean; // Default: true checkDNS?: boolean; // Default: false checkMX?: boolean; // Default: false checkDeliverability?: boolean; // Default: false apiProvider?: 'zerobounce' | 'mailgun' | 'hunter'; apiKey?: string; timeout?: number; // Default: 5000ms } ```

```javascript // Real-time form validation (fast) const formValidator = new EmailValidator({ checkFormat: true });

// Registration validation (balanced) const registrationValidator = new EmailValidator({ checkFormat: true, checkDNS: true });

// Enterprise validation (comprehensive) const enterpriseValidator = new EmailValidator({ checkFormat: true, checkDNS: true, checkMX: true, checkDeliverability: true, apiProvider: 'zerobounce', apiKey: process.env.ZEROBOUNCE_API_KEY }); ```

๐ŸŒ Framework Integration

React

```jsx import { useState } from 'react'; import { EmailValidator } from 'robust-email-validator';

function EmailInput() { const [email, setEmail] = useState(''); const [isValid, setIsValid] = useState(null);

const validateEmail = async (value) => { const result = await EmailValidator.isValid(value); setIsValid(result); };

return ( <input type="email" value={email} onChange={(e) => { setEmail(e.target.value); validateEmail(e.target.value); }} style={{ borderColor: isValid === false ? 'red' : 'green' }} /> ); } ```

Vue

```vue

```

Angular

```typescript import { Component } from '@angular/core'; import { EmailValidator } from 'robust-email-validator';

@Component({ selector: 'app-email-input', template: ` <input [(ngModel)]="email" (input)="validateEmail()" [class.invalid]="!isValid" type="email" /> ` }) export class EmailInputComponent { email = ''; isValid: boolean | null = null;

async validateEmail() { this.isValid = await EmailValidator.isValid(this.email); } } ```

๐Ÿ“Š Performance Benchmarks

OperationTimeMemory
Format validation~0.1ms~1KB
DNS validation~100ms~2KB
API validation~500ms~3KB
Batch (100 emails)~2s~10KB

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Setup

```bash git clone https://github.com/otitoju/robust-email-validator.git cd robust-email-validator npm install npm test ```

๐Ÿ“„ License

MIT ยฉ Your Name

๐Ÿ™ Acknowledgments

  • RFC 5322 specification
  • Email validation community
  • All contributors and users

โญ Star us on GitHub โ€ข ๐Ÿ“– Documentation โ€ข ๐Ÿ› Report Bug โ€ข ๐Ÿ’ก Request Feature

Made with โค๏ธ for the JavaScript community

Keywords

email

FAQs

Package last updated on 22 Jun 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts