Install
Works with Drupal: 7.xUsing dev releases is not recommended, except for testing.
Using Composer to manage Drupal site dependencies
Downloads
Release notes
Provides an Administrative UI and Developers API for safely updating the mail_system configuration variable.
Administrative UI
The administrative interface is at admin/config/system/mailsystem. A screenshot is available.
Used by;
Developers API
A module example with a MailSystemInterface implementation called ExampleMailSystem should add the following in its example.install file:
/** * Implements hook_enable(). */ function example_enable() { mailsystem_set(array('example' => 'ExampleMailSystem')); } /** * Implements hook_disable(). */ function example_disable() { mailsystem_clear(array('example' => 'ExampleMailSystem')); }
The above settings allow mail sent by example to use ExampleMailSystem. To make ExampleMailSystem the site-wide default for sending mail:
mailsystem_set(array(mailsystem_default_id() => 'ExampleMailSystem'));
To restore the default mail system:
mailsystem_set(array(mailsystem_default_id() => mailsystem_default_value()));
Or simply:
mailsystem_set(mailsystem_defaults());
If module example relies on dependency foo and its FooMailSystem class, then the example.install code should like like this:
/** * Implements hook_enable(). */ function example_enable() { mailsystem_set(array('example' => 'FooMailSystem')); } /** * Implements hook_disable(). */ function example_disable() { mailsystem_clear(array('example' => '')); }
If module example only wants to use FooMailSystem when sending emails with a key of examail, then the example.install code should look like this:
/** * Implements hook_enable(). */ function example_enable() { mailsystem_set(array('example_examail' => 'FooMailSystem')); } /** * Implements hook_disable(). */ function example_disable() { mailsystem_clear(array('example_examail' => '')); }
(New in 2.x branch)
To change the site-wide defaults to use the FooMailSystem for formatting messages and the BarMailSystem for sending them:
mailsystem_set( array( mailsystem_default_id() => array( 'format' => 'FooMailSystem', 'mail' => 'BarMailSystem', ), ) );
To change the site-wide defaults to use the FooMailSystem for sending messages, while continuing to use the current system for formatting them:
mailsystem_set( array( mailsystem_default_id() => array( 'mail' => 'FooMailsystem', ), ) );