Как отправлять почту в формате HTML вместо формата электронной почты по умолчанию в Drupal 8 - PullRequest
0 голосов
/ 05 декабря 2018

Как мы можем отправлять письма в формате HTML в Drupal 8 вместо формата по умолчанию, заданного ядром Drupal.Например, формат электронной почты по умолчанию для создания учетной записи пользователя, как мы можем отправить ее в формате HTML?

Формат электронной почты для создания учетной записи Drupal 8

1 Ответ

0 голосов
/ 05 декабря 2018

Вы можете взглянуть на модуль HTML Mail , но версия drupal 8 все еще находится в альфа-версии: /.

Другой простой альтернативой является реализация hook_mail_alter для того, чтобы:

  • Установить правильный тип содержимого в заголовках сообщений.
  • Использовать правильный форматер длясохранить HTML-теги (которые по умолчанию должны быть экранированы).
  • Поместить теги HTML в сообщения электронной почты, не полагаясь на дополнительный модуль.

Единственное, что нужно сделать сейчас, - это написатьнемного HTML в сообщениях, и это должно сделать работу:

/**
 * Implements hook_mail_alter().
 */
function modulename_mail_alter(&$message) {
  switch ($message['key']) {
    case 'register_admin_created':
    #case '<other HTML message id>': 
    #...
      $message['headers']['Content-Type'] = 'text/html; charset=UTF-8;';
      foreach ($message['body'] as $key => &$body) {
        $body = new Drupal\Component\Render\FormattableMarkup($body, []);
      }
      break;
  }
}
...