A lightweight and fast JavaScript library for validating and categorizing email addresses. 🛠️
- ✅ Validate email format and domain
- 🗂️ Categorize emails (personal, business, educational, disposable)
- 🔒 Check against blacklisted domains
- 💨 No external dependencies
- ⚡ Fast and synchronous operation
Install the package using npm:
npm install verifymailjs
Or using yarn:
yarn add verifymailjs
import { verifyEmail } from "verifymailjs";
const result = verifyEmail("user@example.com");
console.log(result);
import { verifyEmail, VerificationResult } from "verifymailjs";
const result: VerificationResult = verifyEmail("user@example.com");
console.log(result);
Verifies an email address and returns a VerificationResult
object.
-
email
(string): The email address to verify. -
options
(object, optional): Configuration options-
strict
(boolean): When true, only allows personal and educational email domains.
-
A VerificationResult
object with the following properties:
-
isValid
(boolean): Indicates whether the email is valid. -
category
(string): The category of the email. Can be one of:'personal'
'business'
'educational'
'disposable'
'unknown'
-
reason
(string, optional): If the email is invalid, this provides a reason.
import { verifyEmail } from "verifymailjs";
const result = verifyEmail("user@gmail.com");
console.log(result);
// Output: { isValid: true, category: 'personal' }
import { verifyEmail } from "verifymailjs";
const result = verifyEmail("invalid-email");
console.log(result);
// Output: { isValid: false, category: 'unknown', reason: 'Invalid email format' }
import { verifyEmail } from "verifymailjs";
// With strict mode enabled
const result = verifyEmail("user@gmail.com", { strict: true });
console.log(result);
// Output: { isValid: true, category: 'personal' }
const result2 = verifyEmail("user@unknown-domain.com", { strict: true });
console.log(result2);
// Output: { isValid: false, category: 'unknown', reason: 'Domain not allowed in strict mode' }
This library performs basic email validation and categorization based on predefined lists and patterns. It does not perform SMTP verification or check for the actual existence of the email address. For most use cases, this level of verification is sufficient and much faster than performing network-based checks.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any problems or have any questions, please open an issue on the GitHub repository.
Made with ❤️ by Anish Biswas