【问题标题】:Problems with displaying formatted emails in Wordpress在 Wordpress 中显示格式化电子邮件的问题
【发布时间】:2021-01-05 08:10:19
【问题描述】:

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

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

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

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

但是出现了另一个问题。整封邮件都是连续文本:没有换行也没有段落:只是所有的句子都排成一行。

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

【问题讨论】:

  • “你知道它可能与什么有关吗?” - 这当然与非常基本的事实有关,HTML 如何处理空格……

标签: php html wordpress wp-mail


【解决方案1】:

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

例如...

$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/

希望这能回答你的问题。

【讨论】:

  • 谢谢李维科尔!我应该在哪里添加这些行以防止在 WP 更新后删除它们?
猜你喜欢
  • 2015-11-03
  • 1970-01-01
  • 2017-10-23
  • 1970-01-01
  • 2020-04-23
  • 1970-01-01
  • 2011-04-08
  • 1970-01-01
相关资源
最近更新 更多