email confirmer Drupal module illustration

This project is not covered by Drupal’s security advisory policy.

Email confirmer is a suite to confirm email addresses in Drupal. It provides:

  • an API and a service as a central method for email confirmation that other modules can use
  • a content entity type to store and control the confirmations
  • essential functionalities featured by included sub-modules, like user email change confirmation

User's email address confirmation

Drupal core provides a mechanism to confirm the user's email when registering, but that's all. The email_confirmer_users included sub-module provides:

  • confirmation request when a user changes their email address
  • update the database of confirmed emails when a users logs in for the first time or by an one-time log in link

What does it mean to confirm an email address?

An email address is confirmed by sending a message to this address with a hash-protected link. This link points to a confirmation form where the recipient can accept or cancel the confirmation.

Database of confirmed email addresses

By design, email confirmer stores each confirmation in a content entity. Currently there is no UI to list or work directly with them becouse that's out of the purpose of it, but any module can work with it.

A basic advantage of having a database is that users do not need to re-confirm again and again the same email address for different usages, like email subscriptions or by updating the address in their user profile.

Email confirmer automatically also deletes old records. The time to live can be stablish in the module settings, or disabled at all for a permanent database.

Usage

The base module does not have an UI and does nothing by itself. The intended audience is module developers or web site programmers. Only the configuration may be relevant for webmasters and website builders.

The included submodules provide some end-user functionalities. Currently one submodule is provided for user email address related confirmations.

For module developers

  • launch an email confirmation in just 1 line
    \Drupal::service('email_confirmer')->confirm('somemail@example.com');
  • get notified of successful confirmation via “hook”
    your module will be notified when the user confirms (or cancels)
  • confirmation control are content entities
    so you’ll get confirmation status tracking and easy integration (fields, hooks, views...)

General features

  • confirmations can be cancelled
    if someone enters another person's email, the recipient can explicitly reject the confirmation
  • automatic purge of old records
    processed or expired confirmations are automatically purged (can be disabled by configuration)
  • spool for recurring requests
    the first email for requesting confirmation is delivered immediately, the following are queued
  • optional restricted validation by IP address
    the confirmation link must be opened from the same connection that initiates the confirmation process
  • multiple configurable parameters
    confirmation timeout and lifetime, response messages, confirmation request email...

Modules using email confirmer

  • Mailing List (D8)
    has integration with email confirmer for double opt-in subscription

If you know any other module that makes use of email_confirmer, please report me.

Roadmap

  • New features and integration with existing modules such as webform are in mind.
Supporting organizations: 

Project information

Releases