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

如何在WordPress中使用Timber/Twig发送邮件?

解决Timber/Twig模板作为邮件内容发送失败的问题

嘿,这个问题我之前也踩过坑!核心问题出在你用错了Timber的方法——Timber::render()是直接把模板内容输出到浏览器(相当于执行了echo),而wp_mail()需要的是字符串格式的邮件内容,不是直接输出的内容。

正确的做法:用Timber::compile()替代render()

compile()方法会把Twig模板渲染成字符串并返回,而不是直接输出,刚好匹配wp_mail()的参数要求。修改后的代码如下:

// 先编译Twig模板,得到渲染后的字符串内容
$email_content = \Timber::compile( 'emails/client-booking.twig', $context );

// 将字符串作为邮件内容传入wp_mail发送
wp_mail( $email, 'Test Mail', $email_content, $headers );

额外的排查建议

  • 如果你的邮件是HTML格式,一定要在$headers里设置正确的内容类型,否则邮件可能显示为乱码或纯文本代码:
    $headers = array('Content-Type: text/html; charset=UTF-8');
    
  • 先验证WordPress的基础邮件功能是否正常,比如发送一个简单的纯文本测试邮件:
    wp_mail('your-test-email@example.com', 'Test', 'Hello from WordPress!');
    
  • 确认$context里的变量正确传递到了Twig模板,可以先打印编译后的内容检查:
    echo $email_content; exit;
    
    看看渲染结果是否符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:21:03