在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
URI:
admin/config/swiftmailer/messages
需要注意的是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 版本