TrekMail 高级邮件筛选的原始 Sieve 编辑器

使用原始 Sieve 代码直接控制高级筛选、转发、标记和自动回复。

文章详情

类型、难度、套餐及最近更新信息。

类型
参考资料
难度
高级
套餐
Agency
最近更新
2026年9月9日

大多数人用不到此页面。TrekMail 的可视化筛选器生成器更容易使用,也能满足绝大多数需求。但对于开发人员、管理大量邮箱的 IT 管理员,或已经达到生成器限制的高级用户,原始 Sieve 编辑器可以完全控制新邮件的处理方式。

只有有效的 Agency 套餐才能启用原始脚本。其他套餐可以保存草稿,但脚本不会运行。

什么是 Sieve?

Sieve 是一种小型邮件筛选脚本语言。每当新邮件到达时,指令就会运行。规则可检查发件人、主题、大小或邮件头,然后移动、转发、标记、拒收邮件或发送自动回复。

与 Outlook 或 Apple Mail 的客户端规则相比,Sieve 全天在服务器运行,不受电脑或邮件应用是否开启影响。连接该邮箱的所有设备都会看到相同结果。

使用 TrekMail 无需学习 Sieve。可视化工具会在后台生成代码;只有需要它无法表达的逻辑时,才需要自行编写。

何时使用原始 Sieve 或可视化筛选器

以下情况使用可视化工具:

  • 只需“发件人包含 X”或“主题包含 Y”等简单条件。
  • 要移动、转发、标记、拒收或丢弃邮件。
  • 不熟悉代码。
  • 希望快速修改而不用处理语法。

以下情况使用原始编辑器:

  • 需要“这个与那个同时满足,但另一个不满足”等复杂逻辑。
  • 需要用正则表达式匹配特定格式的订单号。
  • 要在同一脚本中组合休假回复、筛选和转发。
  • 可视化条件与操作无法表示所需逻辑。
  • 需要把模板复制到多个邮箱。

在哪里打开

  1. 打开 TrekMail 控制面板并进入邮箱
  2. 在目标邮箱旁选择管理
  3. 打开 Sieve 选项卡。
  4. 符合条件的 Agency 账户会先显示托管筛选器生成的脚本。可直接编辑或从头编写。
  5. 点击保存并启用上传并应用脚本。

编辑器会打开当前脚本;尚无脚本时则为空白。输入或粘贴代码,然后点击保存并启用

支持的扩展

扩展 作用
fileinto 把邮件移到指定文件夹。没有它时只能保留在收件箱或丢弃。
reject 用自定义错误消息退回邮件,让发件人知道未送达。
vacation 发送外出自动回复,并内置每位发件人的频率限制。
copy 转发邮件并在邮箱中保留副本。没有它时,转发会移除原邮件。
body 匹配实际正文,而不只是邮件头,适合正文关键词。
imap4flags 设置已读、标记或重要等客户端可见状态。
variables 保存匹配内容供后续使用,简化高级逻辑。
relational 添加大于、小于等数值比较,用于大小和数值邮件头。
regex 使用比简单“包含”更强的正则表达式。

在脚本顶部用 require 声明扩展。服务器会在启用前检查,并拒绝不支持或存在安全风险的扩展。

示例脚本

下面是四个可改用的完整注释示例。

示例 1:复杂条件转发

转发来自特定客户、主题含 "proposal" 且小于 5 MB 的邮件,同时归档并添加标记。

require ["fileinto", "copy", "imap4flags", "relational", "comparator-i;ascii-numeric"];

# Forward proposal emails from client, but only if they are under 5MB
if allof (
    address :contains "from" "@bigclient.com",
    header :contains "subject" "proposal",
    size :under 5M
) {
    # Send a copy to the project manager
    redirect :copy "pm@youragency.com";

    # Flag it for follow-up
    addflag "\\Flagged";

    # File it in the client folder
    fileinto "Clients/BigClient/Proposals";

    # Stop processing further rules
    stop;
}

# Everything else from this client goes to their general folder
if address :contains "from" "@bigclient.com" {
    fileinto "Clients/BigClient";
    stop;
}

**作用:**第一条规则仅匹配小于 5 MB 的客户提案,并执行转发、标记和归档。第二条把该客户的其余邮件归入通用文件夹。

示例 2:用正则表达式匹配订单号

匹配 ORD-12345 或 ORD-98765 等格式并自动归档。

require ["fileinto", "regex"];

# Match order confirmation emails with order numbers like ORD-#####
if header :regex "subject" "ORD-[0-9]{4,6}" {
    fileinto "Orders";
    stop;
}

# Match support ticket numbers like TICKET-####
if header :regex "subject" "TICKET-[0-9]{3,}" {
    fileinto "Support Tickets";
    stop;
}

作用:[0-9]{4,6} 表示“4 到 6 位数字”,无需列出所有编号即可匹配 ORD-1234、ORD-12345 和 ORD-123456。

示例 3:组合休假、归档和转发

一个脚本同时发送外出回复、把紧急邮件转给同事并按类别归档其他邮件。

require ["fileinto", "vacation", "copy", "imap4flags"];

# Auto-reply to everyone (once per 3 days per sender)
vacation :days 3 :subject "Out of office until April 15"
    "Thanks for your email. I am out of the office until April 15
with limited access to email. For urgent matters, please contact
Sarah at sarah@youragency.com. I will reply when I return.";

# Forward urgent emails to Sarah immediately
if header :contains "subject" "urgent" {
    redirect :copy "sarah@youragency.com";
    addflag "\\Flagged";
}

# File invoices
if header :contains "subject" "invoice" {
    fileinto "Invoices";
    stop;
}

# File newsletters
if address :contains "from" "newsletter" {
    fileinto "Newsletters";
    stop;
}

作用:vacation 对每位发件人最多每 3 天回复一次。它没有使用 stop,所以回复后会继续执行下方筛选规则。

示例 4:按自定义邮件头标记

某些系统用 X-Priority 表示重要性。脚本读取该邮件头并标记高优先级消息。

require ["imap4flags", "fileinto", "relational", "comparator-i;ascii-numeric"];

# X-Priority: 1 = highest, 5 = lowest
# Flag messages marked as high priority by the sending server
if header :value "le" :comparator "i;ascii-numeric"
    "X-Priority" "2" {
    addflag "\\Flagged";
}

# File low-priority messages (4 or 5) into a "Low Priority" folder
if header :value "ge" :comparator "i;ascii-numeric"
    "X-Priority" "4" {
    fileinto "Low Priority";
    stop;
}

作用:X-Priority 中 1 最高、5 最低。:value "le" 表示“小于或等于”,因此标记 1 和 2;4 和 5 会移出收件箱。

重要说明

原始脚本会替换可视化筛选器。 可视化规则仍会保存,但脚本启用时不生效。要恢复,请在 Sieve 顶部点击重置为默认设置

服务器会先验证再启用。 点击保存并启用后会检查语法。发现错误时拒绝启用,先前脚本或可视化筛选器会继续运行。

require 必不可少。 每个扩展都必须列入 require。使用 fileintovacation 却未声明时,服务器会拒绝脚本。

垃圾邮件先于脚本处理。 TrekMail 在服务器上先进行垃圾邮件检查,Sieve 只处理通过检查的消息,无需编写反垃圾规则。

返回可视化筛选器

  1. 打开邮箱的 Sieve 选项卡。
  2. 点击编辑器右上角的重置为默认设置
  3. 确认操作。

自定义脚本会被丢弃,并恢复由已保存可视化筛选器自动生成的脚本。

筛选器选项卡保存更改也会恢复托管脚本。自动回复不会覆盖原始脚本;请先返回托管模式,再设置自动回复。

常见错误及解决方法

忘记 require。 若出现 "unknown command fileinto",请在顶部添加 require ["fileinto"];

缺少分号。 每条 Sieve 命令都以分号结尾。遇到意外标记时,重点检查 stopdiscardfileinto

字符串未加引号。 文件夹、地址和值要使用双引号。fileinto Newsletters; 会失败,fileinto "Newsletters"; 才正确。

标记中的反斜杠。 IMAP 标记 \Flagged\Seen 在 Sieve 中需要双反斜杠:"\\Flagged""\\Seen"。单个反斜杠是转义符,会导致错误。

文件夹不存在。 转发前先在邮件客户端创建。除非脚本和服务器支持,否则原始脚本不会自动建文件夹。

脚本过大。 脚本大小有实际限制。超过几百行时,可将部分规则交给可视化工具,不必把所有内容放在一个脚本中。

相关文章

跳转到延续此工作流的邻近指南。

我们使用运行和保护 TrekMail 所必需的技术。确认后还会允许《Cookie 政策》中所述的有限分析和广告衡量。

登录 TrekMail

访问您的控制面板、邮箱和 DNS。

12 个字符 两次密码一致

重置邮件已发送

如果该邮箱对应已有账户,我们已发送密码重置说明。

继续即表示您同意 TrekMail 的 服务条款隐私政策.