TrekMail 高级邮件筛选的原始 Sieve 编辑器
使用原始 Sieve 代码直接控制高级筛选、转发、标记和自动回复。
文章详情
类型、难度、套餐及最近更新信息。
▼
文章详情
类型、难度、套餐及最近更新信息。
- 类型
- 参考资料
- 难度
- 高级
- 套餐
- Agency
- 最近更新
- 2026年9月9日
大多数人用不到此页面。TrekMail 的可视化筛选器生成器更容易使用,也能满足绝大多数需求。但对于开发人员、管理大量邮箱的 IT 管理员,或已经达到生成器限制的高级用户,原始 Sieve 编辑器可以完全控制新邮件的处理方式。
只有有效的 Agency 套餐才能启用原始脚本。其他套餐可以保存草稿,但脚本不会运行。
什么是 Sieve?
Sieve 是一种小型邮件筛选脚本语言。每当新邮件到达时,指令就会运行。规则可检查发件人、主题、大小或邮件头,然后移动、转发、标记、拒收邮件或发送自动回复。
与 Outlook 或 Apple Mail 的客户端规则相比,Sieve 全天在服务器运行,不受电脑或邮件应用是否开启影响。连接该邮箱的所有设备都会看到相同结果。
使用 TrekMail 无需学习 Sieve。可视化工具会在后台生成代码;只有需要它无法表达的逻辑时,才需要自行编写。
何时使用原始 Sieve 或可视化筛选器
以下情况使用可视化工具:
- 只需“发件人包含 X”或“主题包含 Y”等简单条件。
- 要移动、转发、标记、拒收或丢弃邮件。
- 不熟悉代码。
- 希望快速修改而不用处理语法。
以下情况使用原始编辑器:
- 需要“这个与那个同时满足,但另一个不满足”等复杂逻辑。
- 需要用正则表达式匹配特定格式的订单号。
- 要在同一脚本中组合休假回复、筛选和转发。
- 可视化条件与操作无法表示所需逻辑。
- 需要把模板复制到多个邮箱。
在哪里打开
- 打开 TrekMail 控制面板并进入邮箱。
- 在目标邮箱旁选择管理。
- 打开 Sieve 选项卡。
- 符合条件的 Agency 账户会先显示托管筛选器生成的脚本。可直接编辑或从头编写。
- 点击保存并启用上传并应用脚本。
编辑器会打开当前脚本;尚无脚本时则为空白。输入或粘贴代码,然后点击保存并启用。
支持的扩展
| 扩展 | 作用 |
|---|---|
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。使用 fileinto 或 vacation 却未声明时,服务器会拒绝脚本。
垃圾邮件先于脚本处理。 TrekMail 在服务器上先进行垃圾邮件检查,Sieve 只处理通过检查的消息,无需编写反垃圾规则。
返回可视化筛选器
- 打开邮箱的 Sieve 选项卡。
- 点击编辑器右上角的重置为默认设置。
- 确认操作。
自定义脚本会被丢弃,并恢复由已保存可视化筛选器自动生成的脚本。
在筛选器选项卡保存更改也会恢复托管脚本。自动回复不会覆盖原始脚本;请先返回托管模式,再设置自动回复。
常见错误及解决方法
忘记 require。 若出现 "unknown command fileinto",请在顶部添加 require ["fileinto"];。
缺少分号。 每条 Sieve 命令都以分号结尾。遇到意外标记时,重点检查 stop、discard 和 fileinto。
字符串未加引号。 文件夹、地址和值要使用双引号。fileinto Newsletters; 会失败,fileinto "Newsletters"; 才正确。
标记中的反斜杠。 IMAP 标记 \Flagged 和 \Seen 在 Sieve 中需要双反斜杠:"\\Flagged" 和 "\\Seen"。单个反斜杠是转义符,会导致错误。
文件夹不存在。 转发前先在邮件客户端创建。除非脚本和服务器支持,否则原始脚本不会自动建文件夹。
脚本过大。 脚本大小有实际限制。超过几百行时,可将部分规则交给可视化工具,不必把所有内容放在一个脚本中。
相关文章
跳转到延续此工作流的邻近指南。