Releases: harungecit/php-email-validator
Releases · harungecit/php-email-validator
Release list
v3.1.1
What's new
- Blocklist updated to 8,948 domains — 785 new disposable domains from the disposable-email-domains project.
- Subdomain detection —
isDisposable()now also checks parent domains, souser@sub.mailinator.comis detected through themailinator.comentry. The most specific list entry wins; on the same level the allowlist takes priority. Lookups use a hash index instead of a linear scan. - Automated list releases — a scheduled GitHub Actions workflow refreshes the blocklist every Monday and publishes a patch release when it changed, so a regular
composer updatekeeps the list current. composer update-listsnow rebuilds the blocklist asupstream + data/blocklist.local.conf − allowlist, so upstream false-positive removals are applied (removedgmal.com,iwi.net,mailhub.pro). Added safety checks for unattended runs (--forceoverrides the shrink guard).
Full diff: v3.1.0...v3.1.1
v3.1.0
What's Changed
- Updated the disposable blocklist to 8,166 domains (244 new domains from the disposable-email-domains project).
- Expanded the allowlist to 199 domains (added
proton.me,pm.me,hey.com,tuta.com,zohomail.com,icloud.com,duck.com,simplelogin.io,addy.io, and more). The upstream allowlist was discontinued; it is now maintained in this package. - Added
composer update-lists(scripts/update-lists.php) to refresh the blocklist from upstream with a single command. - Expanded the default typo mappings and common-domain list (Proton, Tuta, HEY, Zoho Mail, GMX, Yandex, and regional Yahoo/Hotmail/Outlook domains) and synchronized them across all config templates.
- Expanded the default role-based prefixes (
administrator,donotreply,security,privacy,legal,compliance,notifications, and more). Fetcher::saveList()now always writes LF line endings regardless of platform.
Full Changelog: v3.0.1...v3.1.0
v3.0.1
- Requires PHP 8.0+ (dropped 7.4). Forward-compatible through PHP 8.5.
- Added a rich ValidationResult object returned by the new validate() method, plus validateBatch().
- Added Configuration and a fluent ConfigurationBuilder with strict, standard, basic, and minimal presets.
- Added configuration file loading (PHP / JSON / YAML) via EmailValidator::fromConfigFile().
- Added new checks: role-based detection, subaddress (plus addressing), typo suggestions (SuggestionResult), SMTP verification, and catch-all detection.
- Added a pluggable cache layer with Memory, File, Redis, Memcached, PSR-16, and Null adapters.
- Added token-bucket rate limiting with RateLimitExceededException.
- Added PSR-3 logging support.
- Added Laravel (service provider, facade, publishable config, validation rules) and Symfony (bundle, DI extension) integrations.
- Updated the disposable blocklist to 7,900+ domains, synchronized with the disposable-email-domains project.
- Fully backward compatible with the 2.x public API.
v2.0.0
v2.0.0 (December 2025)
- Breaking Change: Namespace changed from
PHPOrbit\EmailValidatortoHarunGecit\EmailValidator - Breaking Change: Package name changed from
phporbit/php-email-validatortoharungecit/php-email-validator - Added batch/array email validation support (
validateMultiple,filterValid,filterInvalid) - Added
isValid()method for complete validation in one call - Added
validateWithDetails()for detailed validation results - Added
getStatistics()for batch validation statistics - Added static factory method
EmailValidator::create() - Added fluent interface for list management
- Added MX record caching
- Added
hasValidDNS()for A/AAAA record checking - Added email normalization methods
- Added list management methods (add/remove domains)
- Enhanced Fetcher with caching, custom list loading, and merge capabilities
- Expanded test suite from 3 to 50+ test methods
- Added multi-platform CI support (Ubuntu, Windows, macOS)
- Added PHP 8.5 support