valid-email-checker
v1.0.0
Published
Comprehensive email validation library - validates format, detects temporary/disposable emails, and identifies spam patterns
Maintainers
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-checkerFeatures
- ✅ 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
- API Reference - Complete API documentation
- Examples - Usage examples and recipes
- Contributing - How to contribute
- Changelog - Version history
License
MIT
