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

如何检测应接收邮件主题未出现在已接收邮件列表中

解决方案

核心问题是:应接收主题分为两类,一类需要完全匹配(比如你发送的邮件主题),另一类是作为前缀出现在已接收主题中的(比如subject1对应带后缀的subject1 backup up completed)。直接用集合差集无法处理前缀匹配场景,需要针对性做前缀+完全匹配检查。

实现代码

# 已接收的邮件主题列表
sent_subjects = [
    'subject1 backup up completed', 'subject2-2 backup failed', 
    'subject4 backup partial complete', 'email3 done', 'ak47 failed', 
    'mp5 is good', 'm4 is good'
]

# 从JSON读取的发送邮件条目
emails = [
    {'subject': 'mp3 is good', 'date': '2020-02-02'},
    {'subject': 'mp5 is good', 'date': '2020-02-02'},
    {'subject': 'm4 is good', 'date': '2020-02-02'}
]

# 生成应接收主题列表
subjects = [x['subject'] for x in emails]
static_subjects = [
    'subject1', 'subject2-2', 'subject4', 'email3', 'ak47', 
    'subject10', 'email11', 'final destination'
]
subjects += static_subjects
subjects.sort()

# 检测未收到的主题
missing_subjects = []
for expected in subjects:
    # 检查两种情况:完全匹配,或作为带空格的前缀(避免部分匹配)
    found = False
    for received in sent_subjects:
        if received == expected or received.startswith(expected + ' '):
            found = True
            break
    if not found:
        missing_subjects.append(expected)

# 输出结果
for subj in missing_subjects:
    print(subj)

代码说明

  • 完全匹配:处理你主动发送的邮件主题(比如mp5 is good),这类主题必须和已接收列表条目完全一致才算收到。
  • 前缀匹配:处理带动态后缀的被动接收主题(比如subject1),通过startswith(expected + ' ')确保匹配完整前缀,避免subject误匹配subject1这类部分重合的情况。
  • 遍历所有应接收主题,逐一验证是否存在匹配项,未匹配的即为未收到的主题。

运行结果

mp3 is good
subject10
email11
final destination

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 11:32:48