Вы здесь

Отправка писем с помощью Mandrill и выбор темплейта для письма

1

Столкнулся с необходимостью отправки писем через Mandrill. Установил модуль https://www.drupal.org/project/mandrill.

Тестовые письма отправляются нормально, но пока не получается отправлять письма с использованием мандриловских темплейтов, которые я сам могу выбрать. Отправляю письмо с использованием одного темплейта так:

/*
 * Implements hook_menu().
 */
function mandrill_send_menu(){
  $items = array();  

  $items['send'] = array(
    'title' => 'Simple send',
    'page callback' => 'drupal_get_form',
    'access callback' => TRUE,
    'page arguments' => array('simple_send_callback_form'),
  ); 

  return $items;
}

/*
 * Callback form send page
 * При клике на кнопку будет отправляться письмо
 */
function simple_send_callback_form($form, $form_state){
  $form = array();
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Submit'),
  );
  return $form;
}

/*
 * Callback form submit
 */
function simple_send_callback_form_submit($form, $form_state){
  $module = 'simple_send';
  $key = 'mandrill_mail';
  $email = 'mymail@my.mm';
  $language = 'en';
  $from = NULL;
  $send = TRUE;
  $params = array();
  drupal_mail($module, $key, $email, $language, $params, $from, $send);
}

/*
 * Implements hook_mail().
 */    
function simple_send_mail($key, &$message, $params) {
  switch ($key) {
    case 'mandrill_mail':
      // Set headers etc
      $message['to'] = 'mymail@my.mm';
      $message['subject'] = t('Hello');
      $message['body'][] = t('The main part of the message.');
      $message['mandrill_template_content'] = array(
        array(
          'name' => 'content', // Этот регион прописан в темплейте так: <div mc:edit="content"></div>
          'content' => t('Translatable content1.'),
        ),
      );  
      break;
  }
}

Подскажите, как настроить работу с использованием нескольких темплейтов?

Версия Drupal: 
7.x
Связанные проекты: 
MandrillMail System
Вопрос задан 05.04.2016 - 12:25
Аватар пользователя shu
shu
178

Я может не по делу. Но возможно это вам и не потребуется делать :D Вы, или ваш клиент в курсе что Mandrill закрывается и переводится в разряд платных сервисов Mailchimp? Возможно и формат API смениться может. 27 апреля он будет отключен.

Комментарий оставлен 05.04.2016 - 13:26

Да, про платный сервис знает. А вот про смену api не в курсе. Погуглю, спасибо.

Комментарий оставлен 05.04.2016 - 17:39

Ну он может и не сменится, но стоит погуглить всё же да. Чтобы потом не оказалось что напрасно делали. А так мандрил из коробки шлет HTML письма. У меня проблем не было, и тут сайт шлёт HTML без проблем также через мандрил. Вам наверное нужно указать:

$message['headers']['Content-Type'] = 'text/html; charset=UTF-8; format=flowed; delsp=yes';
Комментарий оставлен 05.04.2016 - 17:40

Ответы