首页 > 解决方案 > 在 Wordpress 中显示格式化电子邮件的问题

问题描述

默认情况下,wp_mail 函数不支持显示格式化的电子邮件。例如,具有格式化文本的新评论的通知显示 HTML 标记显示为纯文本。

我通过将以下代码添加到functions.php文件中解决了这个问题:

function set_html_mail_content_type(){
    return "text/html";
}
add_filter( 'wp_mail_content_type','set_html_mail_content_type' );

在那之后,电子邮件开始带有格式化的文本并且没有 HTML 标记。

但又出现了一个问题。整封电子邮件以连续文本形式出现:没有换行也没有段落:只是所有句子都在一行中。

你知道它可能与什么有关吗?

标签: phphtmlwordpresswp-mail

解决方案


我通常通过在 headers 参数中传递内容类型来处理这个问题wp_mail()

例如...

$to = 'john.doe@example.com';
$subject = 'HTML Test';
$body = '<html>...</html>';
$headers = [
  'Content-Type' => 'text/html; charset=UTF-8'
];

wp_mail( $to, $subject, $body, $headers );

更多信息:https ://developer.wordpress.org/reference/functions/wp_mail/

希望这能回答你的问题。


推荐阅读