目录
可以实现。你的目标是:
osTicket 继续收取邮件,但只把“已有工单的邮件回复”追加到工单中;用户直接发送的新邮件不能自动创建工单。
正确做法不是关闭邮件获取,而是建立一个**“拒绝所有通过邮件新建工单”的工单过滤器**。

一、保留邮件获取功能
不要关闭以下设置,否则用户回复已有工单的邮件也无法同步。
1. 开启邮箱拉取
进入:
管理面板 → 邮件 → 邮件 → 选择工单邮箱 → 远程邮箱(Remote Mailbox)
配置:
状态:启用 协议:IMAP 邮件文件夹:INBOX 拉取频率:建议 1~5 分钟 已获取邮件:移动到文件夹 目标文件夹:OSTICKET-PROCESSED
官方建议已处理邮件使用“移动到文件夹”,而不是“什么都不做”,否则可能重复处理邮件。(osTicket 文档)
2. 开启全局邮件获取
进入:
管理面板 → 邮件 → 设置 → 启用邮件获取
并保留你的 cron,例如:
*/5 * * * * php /www/wwwroot/test.aiops.xxx.com/Fuyo-osTicket/api/cron.php
二、创建“拒绝邮件新建工单”过滤器
进入:
管理面板 → 管理 → 工单过滤器 → 添加新过滤器
按照下面配置。
基本设置
过滤器名称: 禁止通过邮件创建新工单 执行顺序: 1 状态: 启用 目标渠道: Emails / 邮件
假如系统有多个工单邮箱,也可以选择具体邮箱,例如:
it-service@company.com
osTicket 官方文档说明,过滤器可以只针对“Emails”渠道,或者只针对某一个具体收件邮箱。(osTicket 文档)
过滤规则
设置为:
匹配方式: 匹配任意条件
添加规则:
字段:用户 / 邮箱地址 条件:包含 值:@
因为正常邮箱地址都包含 @,所以这条规则基本可以匹配所有尝试通过邮件创建的新工单。



过滤器操作
选择:
拒绝工单:启用
同时勾选:
符合条件后停止继续处理
最终配置可以概括为:
目标渠道:Emails 条件:用户邮箱地址包含 @ 操作:Reject Ticket / 拒绝工单 停止继续处理:是
官方文档明确说明,工单过滤器只应用于工单创建阶段;选择“Reject Ticket”后,系统不会创建工单。(osTicket 文档)
三、为什么不会影响已有工单的邮件回复
用户回复 osTicket 发出的邮件时,系统会先尝试根据邮件线程信息识别已有工单。
能够识别时:
用户回复邮件
↓
识别到已有工单 #123456
↓
把邮件正文追加到工单会话记录
↓
不会进入“新建工单过滤器”
无法识别到已有工单时:
用户直接发送新邮件
↓
系统尝试创建新工单
↓
进入“禁止通过邮件创建新工单”过滤器
↓
命中邮箱包含 @
↓
拒绝创建
这是因为过滤器规则只针对“创建新工单”,而不是针对已有工单追加的新消息。官方文档也将“新消息”定义为追加到现有工单的消息,与新工单创建是两个不同事件。(osTicket 文档)
四、不要只修改“接受未知用户邮件”
在:
管理面板 → 邮件 → 设置 → 接受未知用户的邮件
关闭这个选项,只能阻止不在用户目录中的用户通过邮件建单。
它不能完全满足你的需求,因为:
- 已存在于用户目录中的员工,仍可能通过新邮件创建工单;
- 注册用户仍然可能发送一封独立邮件触发建单;
- 你的目标是所有新工单都必须从网页提交,而不仅是限制陌生人。
因此,建议使用:
邮件获取:保持启用 未知用户邮件:可以关闭 邮件新建工单过滤器:必须配置
官方设置文档也说明,“接受未知用户邮件”只用于决定是否接受不在用户目录中的发件人,并不是关闭整个邮件建单渠道。(osTicket 文档)
五、需要特别检查关闭状态
有一种特殊情况需要注意:
假如工单已经关闭,并且该关闭状态设置为:
不允许用户回复后重新打开
用户再回复邮件时,osTicket 可能尝试创建一张新工单。由于你配置了“拒绝邮件新建工单”过滤器,这封邮件会被拒绝。
建议进入:
管理面板 → 管理 → 列表 → 工单状态 → 选择“已关闭”
检查是否允许:
用户回复时重新打开工单
官方文档说明,当某个关闭状态不允许用户重新打开时,用户回复可能被转换成一张新工单。(osTicket 文档)
六、建议测试这三种场景
| 测试场景 | 预期结果 |
|---|---|
| 用户直接发新邮件到工单邮箱 | 不创建工单 |
| 用户回复已有工单通知邮件 | 内容追加到原工单 |
| 用户在网页提交新工单 | 正常创建工单 |
最终推荐配置:
新工单入口: 仅允许用户门户或代理后台创建 邮件功能: 继续使用 IMAP + cron 拉取 邮件回复: 自动追加至已有工单 独立新邮件: 通过工单过滤器拒绝创建