function action_send_email_action

Sends an e-mail message.

Parameters

object $entity: An optional node entity, which will be added as $context['node'] if provided.

array $context: Array with the following elements:

  • 'recipient': E-mail message recipient. This will be passed through token_replace().
  • 'subject': The subject of the message. This will be passed through token_replace().
  • 'message': The message to send. This will be passed through token_replace().
  • Other elements will be used as the data for token replacement.

Related topics

File

drupal/core/modules/action/action.module, line 594
This is the Actions module for executing stored actions.

Code

function action_send_email_action($entity, $context) {
  if (empty($context['node'])) {
    $context['node'] = $entity;
  }
  $recipient = token_replace($context['recipient'], $context);

  // If the recipient is a registered user with a language preference, use
  // the recipient's preferred language. Otherwise, use the system default
  // language.
  $recipient_account = user_load_by_mail($recipient);
  if ($recipient_account) {
    $langcode = user_preferred_langcode($recipient_account);
  }
  else {
    $langcode = language_default()->langcode;
  }
  $params = array(
    'context' => $context,
  );
  if (drupal_mail('system', 'action_send_email', $recipient, $langcode, $params)) {
    watchdog('action', 'Sent email to %recipient', array(
      '%recipient' => $recipient,
    ));
  }
  else {
    watchdog('error', 'Unable to send email to %recipient', array(
      '%recipient' => $recipient,
    ));
  }
}