function TestMailManager::doMail

Same name and namespace in other branches
  1. 8.9.x core/tests/Drupal/Tests/Core/Mail/MailManagerTest.php \Drupal\Tests\Core\Mail\TestMailManager::doMail()
  2. 10 core/tests/Drupal/Tests/Core/Mail/MailManagerTest.php \Drupal\Tests\Core\Mail\TestMailManager::doMail()
  3. 11.x core/tests/Drupal/Tests/Core/Mail/MailManagerTest.php \Drupal\Tests\Core\Mail\TestMailManager::doMail()

Composes and optionally sends an email message.

Parameters

string $module: A module name to invoke hook_mail() on. The {$module}_mail() hook will be called to complete the $message structure which will already contain common defaults.

string $key: A key to identify the email sent. The final message ID for email altering will be {$module}_{$key}.

string $to: The email address or addresses where the message will be sent to. The formatting of this string will be validated with the PHP email validation filter. Some examples are:

string $langcode: Language code to use to compose the email.

array $params: (optional) Parameters to build the email. Use the key '_error_message' to provide translatable markup to display as a message if an error occurs, or set this to false to disable error display.

string|null $reply: Optional email address to be used to answer.

bool $send: If TRUE, call an implementation of \Drupal\Core\Mail\MailInterface->mail() to deliver the message, and store the result in $message['result']. Modules implementing hook_mail_alter() may cancel sending by setting $message['send'] to FALSE.

Return value

array The $message array structure containing all details of the message. If already sent ($send = TRUE), then the 'result' element will contain the success indicator of the email, failure being already written to the watchdog. (Success means nothing more than the message being accepted at php-level, which still doesn't guarantee it to be delivered.)

Overrides MailManager::doMail

File

core/tests/Drupal/Tests/Core/Mail/MailManagerTest.php, line 188

Class

TestMailManager
Provides a testing version of MailManager with an empty constructor.

Namespace

Drupal\Tests\Core\Mail

Code

public function doMail($module, $key, $to, $langcode, $params = [], $reply = NULL, $send = TRUE) {
    // Build a simplified message array and return it.
    $message = [
        'id' => $module . '_' . $key,
        'module' => $module,
        'key' => $key,
        'to' => $to,
        'from' => 'from@example.org',
        'reply-to' => $reply,
        'langcode' => $langcode,
        'params' => $params,
        'send' => TRUE,
        'subject' => '',
        'body' => [],
    ];
    return $message;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.