![]() | Name | Last modified | Size | Description |
---|---|---|---|---|
![]() | Parent Directory | - | ||
![]() | LICENSE.txt | 2016-11-16 23:57 | 18K | |
![]() | README.html | 2022-07-11 21:49 | 4.4K | |
![]() | README.markdown | 2022-07-11 21:49 | 3.6K | |
![]() | README.txt | 2022-07-11 21:49 | 3.6K | |
![]() | composer.json | 2022-07-11 21:49 | 193 | |
![]() | config/ | 2022-07-11 21:49 | - | |
![]() | mailsystem.info.yml | 2022-07-11 21:51 | 369 | |
![]() | mailsystem.links.menu.yml | 2022-07-11 21:49 | 178 | |
![]() | mailsystem.module | 2022-07-11 21:49 | 2.0K | |
![]() | mailsystem.permissions.yml | 2022-07-11 21:49 | 188 | |
![]() | mailsystem.routing.yml | 2022-07-11 21:49 | 218 | |
![]() | migrations/ | 2022-07-11 21:49 | - | |
![]() | src/ | 2022-07-11 21:49 | - | |
![]() | tests/ | 2022-07-11 21:49 | - | |
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(['example' => 'ExampleMailSystem']);
}
/**
* Implements hook_disable().
*/
function example_disable() {
mailsystem_clear(['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([mailsystem_default_id() => 'ExampleMailSystem']);
To restore the default mail system:
mailsystem_set([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(['example' => 'FooMailSystem']);
}
/**
* Implements hook_disable().
*/
function example_disable() {
mailsystem_clear(['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(['example_examail' => 'FooMailSystem']);
}
/**
* Implements hook_disable().
*/
function example_disable() {
mailsystem_clear(['example_examail' => '']);
}
To change the site-wide defaults to use the FooMailSystem
for formatting messages and the BarMailSystem
for sending them:
mailsystem_set(
[
mailsystem_default_id() => [
'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(
[
mailsystem_default_id() => [
'mail' => 'FooMailsystem',
],
]
);
drupal_mail_system()
API documentation:api.drupal.org/api/drupal/includes--mail.inc/function/drupal_mail_system
MailSystemInterface
API documentation:api.drupal.org/api/drupal/includes--mail.inc/interface/MailSystemInterface