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

如何在Salesforce的email-to-case功能中使用邮件头的“Reply-To:”字段

Email-to-Case 优先取Reply-To字段填充suppliedEmail解决方案

这是Salesforce 2021年夏季版本(v52)的默认逻辑变更,此前版本默认优先取Reply-To头填充suppliedEmail,版本更新后默认改为优先取From发件人地址,可按以下优先级选择解决方案:

  • 原生配置修改(推荐无代码方案)
    1. 进入Setup,搜索Email-to-Case进入配置页
    2. 找到你当前使用的路由规则,点击编辑
    3. 勾选*使用 Reply-To 电子邮件地址(如果存在)*选项,保存后10分钟内生效
  • 低代码流方案(适用于配置不生效或者有自定义逻辑场景)
    1. 新建记录触发流,触发对象为Case,触发时机为记录创建时
    2. 添加获取记录节点,关联当前Case绑定的EmailMessage原始邮件记录
    3. 添加判断分支:当EmailMessage.ReplyToAddress不为空时,执行赋值节点,将该值覆盖写入Case.SuppliedEmail字段
    4. 激活流即可生效
  • Apex代码方案(适用于已经有Case触发器的定制化实例)
    直接在Case的before insert触发器中添加取值逻辑,参考代码如下:
    trigger CaseSetSuppliedEmail on Case (before insert) {
        Set<Id> relatedEmailIds = new Set<Id>();
        for(Case newCase : Trigger.new){
            if(newCase.SourceId != null && newCase.SourceId.getSObjectType() == EmailMessage.SObjectType){
                relatedEmailIds.add(newCase.SourceId);
            }
        }
        if(!relatedEmailIds.isEmpty()){
            Map<Id, EmailMessage> emailMap = new Map<Id, EmailMessage>([
                SELECT Id, ReplyToAddress FROM EmailMessage WHERE Id = :relatedEmailIds
            ]);
            for(Case newCase : Trigger.new){
                if(emailMap.containsKey(newCase.SourceId) && String.isNotBlank(emailMap.get(newCase.SourceId).ReplyToAddress)){
                    newCase.SuppliedEmail = emailMap.get(newCase.SourceId).ReplyToAddress;
                }
            }
        }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:48:04