Provides an Administrative UI and Developers API for safely updating the mail_system configuration variable.
The administrative interface is at admin/config/system/mailsystem
.
A screenshot is available.
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' =\> ''));
}
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',
),
)
);
drupal_mail_system()
API documentation:
: api.drupal.org/api/drupal/includes--mail.inc/function/drupal_mail_system/7
MailSystemInterface
API documentation:
: api.drupal.org/api/drupal/includes--mail.inc/interface/MailSystemInterface/7
Creating HTML formatted mails in Drupal 7: : drupal.org/node/900794