跳转到主要内容
sosyuki 提交于 29 July 2017

在Drupal8中使用代码发送HTML格式邮件。

实现 hook_mail

hook_mail($key, &$message, $params)
/**
 * Implements hook_mail().
 */
function common_mail($key, &$message, $params) {
  switch ($key) {
    case 'test': {
      $message['headers']['Content-Type'] = 'text/html; charset=UTF-8; format=flowed; delsp=yes';
      $message['body'][] = new \Drupal\Component\Render\FormattableMarkup($params['content'], []);
      break;
    }
  }
}

使用的时候

$message = \Drupal::service('plugin.manager.mail')->mail('common', 'test', $mail, $langcode, $params);

HTML 格式邮件发送

需要使用 Swift Mailer 模块。

安装好后,配置如下:

URI:

admin/config/system/mailsystem

qqtu_pian_20170729101742.png

URI:

admin/config/swiftmailer/messages

qqtu_pian_20170729101923.png

需要注意的是body渲染需要使用 \Drupal\Component\Render\FormattableMarkup,我就是卡在这里了。

$message['body'][] = new \Drupal\Component\Render\FormattableMarkup($params['content'], []);

参考资料:

https://www.drupal.org/node/1590190

来源:

https://sosyuki.com/article/drupal-8-%E5%8F%91%E9%80%81html%E9%82%AE%E4%BB%B6

 

 

标签
Drupal 版本