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

SuiteCRM 入站邮件自动创建CASE的自定义条件设置方法

SuiteCRM 入站邮件自动创建Case 自定义规则实现指引

1. 入站邮件触发自动创建CASE的代码位置

默认处理逻辑位于核心文件 modules/InboundEmail/InboundEmail.php 中,核心调用方法为 handleCreateCase(),系统拉取到符合规则的入站邮件时,会触发该方法执行Case创建流程。
提示:不建议直接修改核心文件,避免后续版本升级覆盖自定义代码,推荐通过逻辑钩子(Logic Hook)的方式注入判断规则

2. 自定义判断逻辑实现步骤

你需要在Case创建前的节点拦截请求,判断邮件主题前缀,匹配规则时终止创建即可,具体操作如下:

  • 第一步:注册逻辑钩子
    如文件 custom/modules/Cases/logic_hooks.php 不存在则新建,写入以下内容:
    <?php
    $hook_version = 1;
    $hook_array['before_save'][] = array(
        1,
        '拦截回复/转发邮件自动创建Case',
        'custom/modules/Cases/CustomCaseHooks.php',
        'CustomCaseHooks',
        'blockReplyForwardCase'
    );
    
  • 第二步:编写判断逻辑
    新建 custom/modules/Cases/CustomCaseHooks.php 文件,写入以下代码:
    <?php
    class CustomCaseHooks
    {
        public function blockReplyForwardCase($bean, $event, $arguments)
        {
            // 仅拦截入站邮件触发的新建Case场景
            if (!empty($bean->fetched_row) || empty($_REQUEST['inbound_email_id'])) {
                return;
            }
            // 格式化主题后做前缀匹配
            $subject = trim(strtoupper($bean->name));
            // PHP8.0及以上版本用str_starts_with方法
            if (str_starts_with($subject, '[FW:]') || str_starts_with($subject, '[RE]')) {
                $bean->mark_deleted($bean->id);
                die();
            }
            // PHP8.0以下版本替换上面的if判断为以下代码:
            // if (substr($subject, 0, 5) === '[FW:]' || substr($subject, 0, 4) === '[RE]') {
            //     $bean->mark_deleted($bean->id);
            //     die();
            // }
        }
    }
    
  • 第三步:生效配置
    进入SuiteCRM后台执行「快速修复和重建」操作即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 01:09:02