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

求助:如何通过Sieve过滤器规则添加内容至邮件正文

Sieve过滤器实现邮件正文添加内容

要给邮件正文添加内容,需要用到Sieve的几个扩展(确保你的邮件服务器支持,比如Dovecot默认支持),结合你已有的主题修改规则,完整规则代码如下:

require ["variables", "replace", "body", "editheader"];

if allof(not address :domain :is ["from"] ["example.com"], not header :contains "Subject" ["[TEXT]"])
{
    # 保留你已实现的主题修改逻辑
    if header :matches "Subject" "*"
    {
        set "subject" "${1}";
        deleteheader "Subject";
        addheader :last "Subject" "[TEXT]  ${1}";
    }

    # 添加正文内容(区分纯文本和HTML格式)
    # 处理HTML格式邮件
    if body :contenttype "text/html" :matches "*"
    {
        set "html_body" "${1}";
        # 在正文末尾(</body>标签前)添加自定义内容,避免破坏HTML结构
        replace "${html_body}<br><br><div style='color: #666; font-style: italic;'>[TEXT] 自定义附加内容</div></body>";
    }
    # 处理纯文本格式邮件
    elsif body :contenttype "text/plain" :matches "*"
    {
        set "plain_body" "${1}";
        # 在正文末尾添加换行分隔的自定义内容
        replace "${plain_body}\n\n---\n[TEXT] 自定义附加内容";
    }
}

关键说明:

  • require语句声明了规则依赖的扩展:variables用于存储临时变量,replace用于替换正文内容,body用于匹配正文,editheader用于修改邮件主题
  • 针对纯文本和HTML邮件分别处理,避免格式混乱:
    • 纯文本邮件直接用换行和分隔线区分附加内容
    • HTML邮件在</body>标签前插入格式化的内容,保持页面结构完整
  • 如果不需要区分格式,也可以简化为直接匹配所有正文并添加内容,但可能导致HTML格式错乱

扩展提示:

  • 若要在正文开头添加内容,只需调整replace里的内容顺序,比如纯文本改为replace "[TEXT] 自定义附加内容\n\n${plain_body}"
  • 可以根据需求修改附加内容的样式或位置,比如插入特定标签后

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 04:42:55