Drupal is a registered trademark of Dries Buytaert
Search API Solr 4.4.0 Minor update available for module search_api_solr (4.4.0). Page Manager 8.x-4.0 Major update available for module page_manager (8.x-4.0). Trash 3.1.0-beta2 New beta version released for module trash (3.1.0-beta2). Commerce AutoSKU 3.0.1 Minor update available for module commerce_autosku (3.0.1). Custom Field 4.0.10 Minor update available for module custom_field (4.0.10). Alternative login ID & display names 2.0.12 Minor update available for module alt_login (2.0.12). EntityReference UUID 3.0.1 Minor update available for module entity_reference_uuid (3.0.1). LocalGov Publications Importer 1.1.1 Minor update available for module localgov_publications_importer (1.1.1). Configuration Override Warn 8.x-1.6 Module config_override_warn updated after 10 months of inactivity (8.x-1.6). Table Alternate Rows Module table_altrow crossed 1,000 active installs.

This module provides advanced email validation using configurable rules, including checking for valid MX records, preventing disposable or free email addresses, and blocking specific domains. It can be integrated with user accounts and webform fields, and offers developer tools for custom validation logic.

Uses the open-source stymiee/email-validator library to validate email addresses using advanced, configurable rules.

Features

⚠️ Error message control

  • Configure custom error messages for each type of validation failure.
  • Translate the error messages with the Configuration Translation core module.

😇 User accounts

Validate the primary email address of users when they are created, or when the email address is changed. By default both are enabled.

(1.x acts on all changes not just edits to the primary email)

📝 Webform fields

  • Use the included Webform validation handler to use this validation system on an any email field in a webfom.
  • Optionally override the global setting for each handler.

🧑🏽‍💻 Developer tools

  • Use the included validation Constraints on any email/string field on any entity to apply the rules from this module.
    • One for new entities
    • One for when the field itself is changed
  • Use the provided Service to easily utilise the validation tools in custom code.
  • Subscribe to the validation event (3.x) to accept or reject addresses with your own logic, for example an allowed-domains list, or to change the messages.


Available Rules

Validate MX

If configured, the domain name will be validated to ensure it exists and has MX records configured. If the domain does not exist or no MX records exist the odds are the email address is not in use.

Restrict Disposable Email Addresses

Many users who are abusing a system, or not using that system as intended, can use a disposable email service who provides a short-lived (approximately 10 minutes) email address to be used for registrations or user confirmations. If configured, the domain name will be validated to ensure it is not associated with a disposable email address provider.

You can add domains to this list if you find the public list providers do not have one you have identified in their lists, or you can choose to only use your custom list of providers.

Restrict Free Email Address Providers

Many users who are abusing a system, or not using that system as intended, can use a free email service who provides a free email address which is immediately available to be used for registrations or user confirmations. If configured, the domain name will be validated to ensure it is not associated with a free email address provider.

You can add domains to this list if you find the public list providers do not have one you have identified in their lists, or you can choose to only use your custom list of providers.

Restrict Banned Domains

If you have users from a domain abusing your system, or you have business rules that require the blocking of certain domains (i.e. specific public email providers like Gmail or Yahoo mail), you can block them in the configuration.

Library versioning

The 3.x branch requires version ^2.1.0 of the third-party library; the 1.x and 2.x branches require ^1.1.4. In both cases this is a minimum rather than a pinned version, which leaves you free to upgrade the library to new releases. If you wish to pin a particular version of the library you can do so by requiring a specific version in your own project/composer.json.

This module will update the required minimum version if the library has a security release or addresses features or bugs relevant to this module.

If the library goes up a major version, so will this module. That is what happened here: library 2.x is supported on the module's 3.x branch.

Similar Modules

None of the above modules allow you to optionally reject emails from disposable or free email providers.

Activity

Total releases
4
First release
Jun 2026
Latest release
1 month ago
Releases (12 mo)
4 ▲ from 0
Maintenance
Active

Release Timeline

Releases

Version Type Release date
1.3.0 Stable Jun 10, 2026
2.1.0 Stable Jun 10, 2026
3.0.0-beta1 Pre-release Jun 10, 2026
3.x-dev Dev Jun 8, 2026