You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress更新文章后发邮件 Gmail显示HTML代码而非渲染内容如何解决

解决办法

核心问题1:邮件头构造错误

你当前拼接邮件头时没有添加换行分隔符,且Content-Type缺少charset声明,导致Gmail无法识别邮件为HTML格式,直接展示源码。

核心问题2:模板读取方式错误

使用file_get_contents读取PHP模板只会返回模板的原始文本,模板内的PHP代码(比如你写的site_url()动态链接)不会被执行,会导致模板内容异常。

修复后的代码

functions.php修改:

// 启用输出缓冲区读取模板,执行内部PHP逻辑
ob_start();
include get_stylesheet_directory() . '/email/template2.php';
$email_body = ob_get_clean();

// 用数组构造邮件头,避免手动拼接换行的错误
$headers = [
    'From: Test <support@test.com>',
    'Content-Type: text/html; charset=UTF-8'
];

$title = wp_strip_all_tags( get_the_title( $post->ID ) );
if ( get_post_type( $post->ID ) === 'property' ) {
    wp_mail( $emails, $title, $email_body, $headers );
}

模板优化注意事项:

  • 所有图片路径必须替换为公网可访问的绝对路径,不能使用images/image-5.png这类相对路径,否则Gmail无法加载图片。
  • 检查模板HTML标签闭合情况,你当前模板存在center、td标签未正确闭合的问题,修复后可避免Gmail解析异常。

内容的提问来源于stack exchange,提问作者Sanad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 15:15:05