hook_mail

Хочешь помочь с переводом? Это очень просто и быстро. Лишь зарегистрируйся, и можешь тут же начать переводить.

developer/hooks/core.php, строка 2197

Версии
6
hook_mail($key, &$message, $params)

Подготавливает письмо, основанное на параметрах. Для подробностей см. также drupal_mail().

Параметры

$key Идентификатор письма.

$message Массив, который наполняется в хуке. Среди ключей этого массива:

  • 'mail_id': Идентификатор, позволяющий распознать отправленное письмо. Смотри в исходные коды модуля, чтобы узнать возможные значения mail_id.
  • 'to': Почтовый адрес или адреса, куда будут отправлены письма. Формат этой строки должен соответствовать спецификации RFC 2822.
  • 'subject': Тема письма. Она не должна содержать символов перевода строки, иначе письмо может быть отправлено неверно. Когда хук вызывается содержит пустую строку.
  • 'body': Массив строк, содержащий тело отправляемого письма. Drupal отформатирует правильные окончания строк вместо Вас. Когда хук вызывается содержит пустую строку.
  • 'from': Заголовкам From, Reply-To, Return-Path и Error-To из переменной $headers уже присвоены это значение (если указано).
  • 'headers': Ассоциативный массив состоящий из присоединяемых заголовков. Обычно используется для добавления дополнительных заголовков (From, Cc, и Bcc).
$params Произвольный массив параметров, заполняемых вызывающим, для передачи в drupal_mail().

Связанные темы

Код

<?php
function hook_mail($key, &$message, $params) {
  $account = $params['account'];
  $context = $params['context'];
  $variables = array(
    '%site_name' => variable_get('site_name', 'Drupal'),
    '%username' => $account->name,
  );
  if ($context['hook'] == 'taxonomy') {
    $object = $params['object'];
    $vocabulary = taxonomy_vocabulary_load($object->vid);
    $variables += array(
      '%term_name' => $object->name,
      '%term_description' => $object->description,
      '%term_id' => $object->tid,
      '%vocabulary_name' => $vocabulary->name,
      '%vocabulary_description' => $vocabulary->description,
      '%vocabulary_id' => $vocabulary->vid,
    );
  }

  // Node-based variable translation is only available if we have a node.
  if (isset($params['node'])) {
    $node = $params['node'];
    $variables += array(
      '%uid' => $node->uid,
      '%node_url' => url('node/'. $node->nid, array('absolute' => TRUE)),
      '%node_type' => node_get_types('name', $node),
      '%title' => $node->title,
      '%teaser' => $node->teaser,
      '%body' => $node->body,
    );
  }
  $subject = strtr($context['subject'], $variables);
  $body = strtr($context['message'], $variables);
  $message['subject'] .= str_replace(array("\r", "\n"), '', $subject);
  $message['body'][] = drupal_html_to_text($body);
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вход в систему