如何在Drupal 8中发送HTML格式的邮件而不是默认的电子邮件格式

时间:2018-12-05 11:33:06

标签: drupal html-email

我们如何以Drupal 8发送html格式的邮件,而不是Drupal核心提供的默认格式。 例如用于创建用户帐户的默认电子邮件格式,我们如何以HTML格式发送此电子邮件?

Drupal 8 account creation email format

1 个答案:

答案 0 :(得分:0)

您可以看一下HTML Mail模块,但drupal 8版本仍在alpha:/中。

另一个简单的替代方法是实现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;
  }
}