npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

valid-email-checker

v1.0.0

Published

Comprehensive email validation library - validates format, detects temporary/disposable emails, and identifies spam patterns

Readme

Valid Email Checker

A comprehensive Node.js library for email validation and verification. Validates email format, detects temporary/disposable email addresses, and identifies spam patterns.

Installation

npm install valid-email-checker

Features

  • Email Format Validation - RFC 5322 compliant email format checking
  • 🚫 Temporary Email Detection - Detects 1000+ disposable email domains
  • 🛡️ Spam Pattern Detection - Identifies common spam email patterns
  • 🔍 MX Record Verification - Optional DNS verification for domain validity
  • Fast & Lightweight - No external dependencies for core features

Usage

Basic Usage

const { 
  validateEmail, 
  isTemporaryEmail, 
  isSpamEmail, 
  fullValidation 
} = require('valid-email-checker');

// Validate email format
const result = validateEmail('[email protected]');
console.log(result); // { valid: true, email: '[email protected]' }

// Check for temporary/disposable email
const isTemp = isTemporaryEmail('[email protected]');
console.log(isTemp); // { isTemporary: true, domain: 'tempmail.com', reason: 'Known disposable email domain' }

// Check for spam patterns
const isSpam = isSpamEmail('[email protected]');
console.log(isSpam); // { isSpam: true, reasons: ['Contains suspicious patterns'] }

// Full validation (combines all checks)
const fullResult = fullValidation('[email protected]');
console.log(fullResult);
// {
//   valid: true,
//   email: '[email protected]',
//   isTemporary: false,
//   isSpam: false,
//   score: 100,
//   details: { ... }
// }

Async Validation with MX Record Check

const { validateEmailAsync } = require('valid-email-checker');

// Validates email and checks if domain has valid MX records
const result = await validateEmailAsync('[email protected]');
console.log(result);
// {
//   valid: true,
//   email: '[email protected]',
//   hasMxRecords: true,
//   mxRecords: ['mx1.example.com', 'mx2.example.com']
// }

Custom Configuration

const { EmailValidator } = require('valid-email-checker');

const validator = new EmailValidator({
  allowPlusAddressing: false,  // Reject emails with + addressing
  checkMxRecords: true,        // Enable MX record checking
  customTempDomains: ['mytempdomain.com'], // Add custom temp domains
  customSpamPatterns: [/^test\d+@/i],      // Add custom spam patterns
});

const result = await validator.validate('[email protected]');

API Reference

validateEmail(email)

Validates email format.

  • Returns: { valid: boolean, email: string, error?: string }

isTemporaryEmail(email)

Checks if email is from a disposable/temporary email service.

  • Returns: { isTemporary: boolean, domain: string, reason?: string }

isSpamEmail(email)

Checks if email matches spam patterns.

  • Returns: { isSpam: boolean, reasons: string[] }

fullValidation(email)

Performs complete validation combining all checks.

  • Returns: { valid: boolean, email: string, isTemporary: boolean, isSpam: boolean, score: number, details: object }

validateEmailAsync(email)

Validates email with MX record verification.

  • Returns: Promise<{ valid: boolean, email: string, hasMxRecords: boolean, mxRecords?: string[] }>

EmailValidator Class

Create custom validator with specific configuration.

Score System

The fullValidation function returns a score from 0-100:

  • 100: Perfect - Valid format, not temporary, no spam patterns
  • 70-99: Good - Valid but has minor concerns
  • 40-69: Suspicious - May be temporary or has spam patterns
  • 0-39: Bad - Invalid or highly suspicious

Documentation

License

MIT