Drupal is a registered trademark of Dries Buytaert
cms 2.1.3 Update released for Drupal core (2.1.3)! drupal 10.5.11 Update released for Drupal core (10.5.11)! drupal 11.3.11 Update released for Drupal core (11.3.11)! drupal 11.2.13 Update released for Drupal core (11.2.13)! drupal 10.6.10 Update released for Drupal core (10.6.10)! cms 2.1.2 Update released for Drupal core (2.1.2)! drupal 11.1.10 Update released for Drupal core (11.1.10)! drupal 10.5.10 Update released for Drupal core (10.5.10)! drupal 10.4.10 Update released for Drupal core (10.4.10)! drupal 11.2.12 Update released for Drupal core (11.2.12)! drupal 11.3.10 Update released for Drupal core (11.3.10)! drupal 10.6.9 Update released for Drupal core (10.6.9)! drupal 10.6.8 Update released for Drupal core (10.6.8)! drupal 11.3.9 Update released for Drupal core (11.3.9)! drupal 11.3.8 Update released for Drupal core (11.3.8)! drupal 11.3.7 Update released for Drupal core (11.3.7)! drupal 11.2.11 Update released for Drupal core (11.2.11)! drupal 10.6.7 Update released for Drupal core (10.6.7)! drupal 10.5.9 Update released for Drupal core (10.5.9)! cms 2.1.1 Update released for Drupal core (2.1.1)!

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
3 days ago
Release cadence
1 day
Stability
50% stable

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