A PHP package for validating email addresses with various checks such as MX records, disposable email detection, and banned email lists, email existence & responsiveness.
- Validate email format
- Check MX records for domain validity
- Detect disposable email addresses
- Check against banned email lists
- Check for free email provider addresses
- Check if mailbox exists
- Check is mailbox is responsive
- Check is domain uses catch-all
You can install the package via Composer. Run the following command:
composer require ezeanyimhenry/email-validatorHere’s how to use the EmailValidator class:
You can validate a single email address as follows:
<?php
require 'vendor/autoload.php'; // Autoload files using Composer
use EzeanyimHenry\EmailValidator\EmailValidator;
// Create a new instance of the EmailValidator
$emailValidator = new EmailValidator();
// Validate a single email address
$result = $emailValidator->validate('test@example.com');
if ($result['isValid']) {
echo "The email is valid.";
} else {
echo "Error: " . $result['message'];
}To validate multiple email addresses at once, simply pass an array:
<?php
require 'vendor/autoload.php'; // Autoload files using Composer
use EzeanyimHenry\EmailValidator\EmailValidator;
// Create a new instance of the EmailValidator
$emailValidator = new EmailValidator();
// Validate multiple email addresses
$emails = [
'test@example.com',
'invalid-email',
'user@mailinator.com',
];
$results = $emailValidator->validate($emails);
foreach ($results as $email => $result) {
echo "$email: " . ($result['isValid'] ? "Valid" : "Invalid - " . $result['message']) . "\n";
}You can customize the validator's behavior by passing configuration options when creating the instance:
<?php
require 'vendor/autoload.php'; // Autoload files using Composer
use EzeanyimHenry\EmailValidator\EmailValidator;
// Create a new instance with custom configuration
$emailValidator = new EmailValidator([
'checkMxRecords' => true,
'checkBannedListedEmail' => true,
'checkDisposableEmail' => true,
'checkFreeEmail' => false,
'checkEmailExistence' => true,
'checkMailServerResponsive' => true,
'checkGreylisting' => true,
'checkCatchAll' => false,
]);
// Validate an email
$result = $emailValidator->validate('test@example.com');The validate() method returns an associative array containing the validation result and a message. You can check if the email is valid by accessing the isValid key, and you can get the error message from the message key.
if (!$result['isValid']) {
echo "Validation failed: " . $result['message'];
}To run the tests, ensure you have PHPUnit installed. You can run the tests with the following command:
Contributions are welcome! Please follow these steps to contribute:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a pull request
This package is licensed under the MIT License. See the LICENSE file for more details.