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);
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии