Отправка email

Письма в друпале отправляются довольно нестандартным способом. Во первых, в любом месте вашего модуля, нужно вызвать функцию drupal_mail в которую передать название модуля, идентификатор письма, адрес получателя и язык письма.

drupal_mail('mymodule', 'my_notify', 'to-user@gmail.com', language_default(), array('somevar' => 'somevalue'));

Последним параметром можно передать какие-нибудь данные, которые будут участвовать в генерации темы письма или сообщения.

Во вторых, в модуле нужно реализовать хук hook_mail, в котором в зависимости от идентификатора письма, будет заполнена тема и текст письма.

/**
 * Реализация hook_mail()
 */
function mymodule_mail($key, &$message, $params) {
  if ($key == 'my_notify') {
    $message['subject'] = 'Тема';
    $message['body'][] = "Текст письма \n somevar = {$params['somevar']}";
  }
}

Громоздкая с виду конструкция, но она позволяет другим модулям, с помощью хука hook_mail_alter, изменять свойства любого письма. Так же функция drupal_mail позволяет создавать письма на основе шаблонов из модулей, в которых реализован хук hook_mail.

Отправлять письма можно и без реализации hook_mail(), для этого в drupal_mail() нужно указать имя модуля — system, а в $params передать специально сформированный массив:

drupal_mail('system', 'mail', 'to@example.com', language_default(), array(
  'context' => array(
    'subject' => 'Some subject',
    'message' => 'Some message',
  )
));

Как отправить e-mail с вложением (атачем).

Написанное актуально для
Drupal 6, Drupal 7
Теги:
работа с почтой
Добавлено: 22 Июля 2018 10:07:24 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...