Downloads

Download tar.gz 19.7 KB
MD5: 4f6febd2300213ec6946904cfefad8e8
SHA-1: 0c592cdec0718df5a9c39e90786c2f08e532ee7f
SHA-256: c0b054e2ba6db96a8ebdeb0727c7b22b3e1cc1d8d836949c1657443344fe8a49
Download zip 23.79 KB
MD5: f62a9a9bf2c1dec59deabae3575d1f7f
SHA-1: fa9f16d0ef3928c787242a20e4e2a4cc5aa2663e
SHA-256: fd86de41022df61cc67f9118981bbef8c14caa4fe8f580d6c3acac453d17d075

Release notes

Changes:
Using variable_get('mail_line_endings', MAIL_LINE_ENDINGS) rather than just MAIL_LINE_ENDINGS allows override from the config file.
Updated mailsystem_html_to_text() function based on #299138-148: Improve \Drupal\Core\Utility\Mail::htmlToText().
Added an explicit dependency on filter.module.
Improved return-path handling from #131737-112: Ensure that the Return-Path is set when sending mail on both Windows and non-Windows systems.
Mail System

Provides an Administrative UI and Developers API for safely updating the mail_system configuration variable.

The 6.x branch also provides a Drupal-6 backport of the Drupal-7 mail system.

(New) Requirement

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',
    ),
  )
);

References

drupal_mail_system(http://api.drupal.org/api/drupal/includes--mail.inc/function/drupal_mail_system/7) API documentation:

api.drupal.org/api/drupal/includes--mail.inc/function/drupal_mail_system/7

MailSystemInterface API documentation:

http://api.drupal.org/api/drupal/includes--mail.inc/interface/MailSystemInterface/7

Creating HTML formatted mails in Drupal 7

drupal.org/node/900794

Created by: pillarsdotnet
Created on: 24 May 2011 at 18:11 UTC
Last updated: 24 May 2011 at 18:11 UTC
Bug fixes
Unsupported

Other releases