Review the package capabilities, install commands, and pricing in one place when you need Email Validator JS inside an internal tool, shipped product, or customer-facing workflow.
Full compliance with RFC 5321 email validation standards for maximum accuracy
Real-time domain MX record validation and SMTP connection testing with automatic retry
Extract first and last names from email addresses with confidence scoring
Domain typo suggestions to recover common misspellings before invalid addresses are stored
Domain age verification and registration status checking with 1-hour caching
Identify disposable, consumer, and role-based email patterns with reusable package helpers
npm install @emailcheck/email-validator-jsyarn add @emailcheck/email-validator-jsimport { verifyEmail } from '@emailcheck/email-validator-js';
const result = await verifyEmail({
emailAddress:'user@example.com',
verifyMx: true,
verifySmtp: true,
timeout: 3000
});
console.log(result);
// {
// validFormat: true,
// validMx: true,
// validSmtp: true
// }import { verifyEmailBatch, verifyEmailDetailed } from '@emailcheck/email-validator-js';
// Batch verification for multiple emails
const emails = [
'valid@example.com',
'invalid@fake-domain.xyz',
'disposable@tempmail.com',
'user@gmail.com'
];
// Parallel batch processing
const results = await verifyEmailBatch({
emails: emails,
verifyMx: true,
verifySmtp: true,
concurrency: 5 // Process 5 emails simultaneously
});
console.log(results);
// Returns array of validation results for each email
// Detailed verification with error codes
const detailed = await verifyEmailDetailed({
emailAddress:'user@example.com',
verifyMx: true,
verifySmtp: true,
timeout: 5000
});
console.log(detailed.errorCode); // Specific error code for debugging
console.log(detailed.errorMessage); // Human-readable error messageimport { verifyEmail, extractNameFromEmail, suggestDomainCorrection, getWhoisInfo } from '@emailcheck/email-validator-js';
// Use advanced features like name detection and domain suggestions
const advancedValidation = async (email: string) => {
// Extract name from email with confidence score
const nameInfo = extractNameFromEmail(email);
console.log(`Name detected: ${nameInfo.firstName} ${nameInfo.lastName} (confidence: ${nameInfo.confidence})`);
// Get domain typo suggestions if misspelled
const suggestion = await suggestDomainCorrection(email);
if (suggestion.suggestedDomain) {
console.log(`Did you mean ${suggestion.suggestedDomain}? (confidence: ${suggestion.confidence}%)`);
}
// Check domain age and registration with WHOIS
const domainInfo = await getWhoisInfo(email.split('@')[1]);
console.log(`Domain age: ${domainInfo.age} days`);
console.log(`Registration status: ${domainInfo.status}`);
// Full validation with all checks
const result = await verifyEmail({
emailAddress: email,
verifyMx: true,
verifySmtp: true,
checkDisposable: true,
checkFree: true,
timeout: 3000
});
return {
valid: result.valid,
name: nameInfo,
suggestion: suggestion.suggestedDomain,
domainInfo: domainInfo,
details: result
};
};// Complete form validation with UI feedback
const EmailValidationForm = () => {
const [email, setEmail] = useState('');
const [validation, setValidation] = useState(null);
const [loading, setLoading] = useState(false);
const validateEmail = async () => {
setLoading(true);
try {
const detailed = await verifyEmailDetailed({
emailAddress: email,
verifyMx: true,
verifySmtp: true
});
setValidation({
valid: detailed.validFormat && detailed.validMx,
format: detailed.validFormat,
mx: detailed.validMx,
smtp: detailed.validSmtp,
errorCode: detailed.errorCode,
errorMessage: detailed.errorMessage
});
} catch (error) {
setValidation({
valid: false,
errorMessage: error.message
});
}
setLoading(false);
};
return (
<div className="email-validator">
<input
type="email"
value={email}
onChange={(e) => setEmail(e.target.value)}
placeholder="Enter email to validate"
/>
<button onClick={validateEmail} disabled={loading}>
{loading ?'Validating...' :'Validate Email'}
</button>
{validation && (
<div className="results">
{validation.valid ? (
<div className="success">
✅ Valid Email
<p>Format: {validation.format ?'✓' :'✗'}</p>
<p>MX: {validation.mx ?'✓' :'✗'}</p>
<p>SMTP: {validation.smtp ?'✓' :'✗'}</p>
</div>
) : (
<div className="error">
❌ Invalid Email
{validation.errorMessage && (
<p>Error: {validation.errorMessage}</p>
)}
{validation.errorCode && (
<p>Code: {validation.errorCode}</p>
)}
</div>
)}
</div>
)}
</div>
);
};Clean imported email lists before campaigns and migrations
Protect signup forms from spam and fake registrations
Reduce bounce rates in marketing automation platforms
Enhance marketing IP reputation with clean email lists
Validate bulk email lists with concurrent batch processing
Prevent disposable emails in subscription services
Ensure data quality in CRM and customer databases
Optimize transactional email deliverability
Comply with email marketing best practices
Save costs by removing invalid emails before sending
Designed for application and internal-tool workflows
Concurrent processing for list-validation jobs
WHOIS cache TTL
Batch processing
Main validation function that performs comprehensive email verification.
Options:
emailAddress: string - Email to validateverifyMx: boolean - Check MX records (default: true)verifySmtp: boolean - Check SMTP connection (default: false)timeout: number - Connection timeout in ms (default: 10000)Advanced verification with detailed error codes and messages for debugging.
Concurrent batch email verification with configurable parallelism.
Extract first and last names from email addresses with confidence scoring.
Suggest corrections for misspelled domains before invalid addresses reach production systems.
Get domain age and registration status through WHOIS lookup with 1-hour caching.
Check if email address is from a disposable/temporary email provider.
Check whether an address uses a common consumer mailbox provider such as Gmail or Yahoo.
Choose the perfect plan for your validation needs. All plans include full API access, TypeScript support, and regular updates.
Perfect for small businesses and MVPs
For growing companies with higher volume
For large-scale applications
Perpetual license for a single product - no recurring fees
one-time payment
This library is distributed under the Business Source License (BSL) 1.1. It can be used in these contexts:
Questions about licensing? Contact us at sales@email-check.app