hook_mail → Отправка писем из модуля
Для отправки писем из нашего абстрактного модуля нам понадобится реализация, hook_mail.
hook_mail($key, &$message, $params),
где
$message = array( ‘id’ => $module . ‘_’ . $key, ‘module’ => $module, //название нашего модуля ‘key’ => $key, //идентификатор отправки ’to’ => $to, /адрес отправителя, должен соответствовать RFC 2822 (например: user@example.com user@example.com, anotheruser@example.com User User , Another User )/ ‘from’ => isset($from) ? $from : $default_from, //адрес отправителя, по умолчанию адрес сайта ’language’ => $language, ‘params’ => $params, //массив параметров для построения письма ‘subject’ => ‘’, //тема письма ‘body’ => array(), //массив строк тела письма );
$language - язык, $params - массив параметров, для построения письма.
Вызываться наш хук будет через функцию drupal_mail:
drupal_mail($module, $key, $to, $language, $params = array(), $from = NULL, $send = TRUE)
Рассмотрим на примере модуля типа обратная связь:
//$data[‘mail’] = ’example@yandex.ru’ //$data[‘subject’] = ‘Обратная связь. Поступило новое сообщение’ //$data[‘body’] = ‘Тут был Вася’ function feedback_send($data) {
// функция feedback_mail будет вызвана, по первому параметру drupal_mail
drupal_mail('feedback', 'notice', $data['mail'], language_default(), $data);
}
function feedback_mail($key, &$message, $params) {
switch($key) {
case 'notice':
$message['subject'] = $params['subject'];
$message['body'][] = 'Поступило новое сообщение следующего содержания';
$message['body'][] = $params['body'];
break;
}
}