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

用正则剥离多客户端HTML邮件引用内容:遗漏哪些标记及失效场景?

邮件正文链接提取方案及规则补全疑问

目标

  • 从邮件正文中提取链接,需排除引用线程(对话历史邮件内容)和客户端回复附加签名内的链接
  • 定位新内容与引用历史的分界点,仅扫描该点之前的href链接
  • 数据来源为通过MS Graph获取的Outlook邮件正文,需覆盖所有邮件客户端、营销/CRM服务附加的引用内容

为何不使用uniqueBody

  • MS Graph提供的uniqueBody属性不可靠,查询时会间歇性抛出ErrorItemPropertyRequestedFailed错误,相同邮件的body属性无此问题,且该错误与内容大小无关

内容类型偏好:HTML

  • 通过HTML格式正文的href标签提取链接更可靠;纯文本格式需大量特殊处理,难以保证提取所有真实链接的成功率

实现方案:正则表达式

  • 使用C#编译的单个不区分大小写、最左匹配正则扫描正文,匹配位置作为截断点,仅扫描该点之前的链接
  • 对比HtmlAgilityPack,正则提取速度更快
  • 参考Talon项目(支持Python和.NET,.NET版本HTML提取功能不完善)的正则模式,整理现有匹配规则如下:
分组正则模式
append<div\s+(?:[^>]*?\s+)?id\s*=\s*['"]?appendonsend
reply<div\s+(?:[^>]*?\s+)?id\s*=\s*['"]?divRply
signature<div\s+(?:[^>]*?\s+)?id\s*=\s*['"]?Signature
旧版Outlook桌面端引用标记<(?:div\
Gmail、HubSpot/CRM、Yahoo、Thunderbird引用<(?:div\、hs_reply\、moz-cite)
Apple Mail<blockquote\s+[^>]*?type\s*=\s*['"]?cite

疑问

现有规则是否遗漏了常见发送方(Outlook变体、Gmail、Apple Mail、Yahoo及其他营销/CRM平台)的标记?能否真正实现全面覆盖?欢迎提供建议或指导。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.06 10:13:10