c# - Microsoft 加载项在共享文件夹中添加重复邮件
问题描述
我开发了一个 Outlook 插件,它可以过滤邮件,如果它们符合某些标准,它会将它们移动到邮件列表下的共享文件夹中。
一个人可以正常工作,但是当我将它添加到邮件列表的另一个人时,它会再次将传入的邮件移动到共享文件夹。所以,我面临重复的邮件。
是否有任何方法或策略来防止在第一次添加相同的邮件或替换相同的邮件?
我知道相同的邮件不是很清楚,它可以通过多种组合来定义(相同的描述-相同的正文、相同的时间-相同的描述等)。先感谢您。
解决方案
你不能可靠。
为了让它发挥作用,当您移动电子邮件时,您可以将原始邮件 ID 存储到您在目标文件夹中创建的新电子邮件中的自定义标签字段中(当您移动电子邮件时,您实际上创建一个内容相同的新电子邮件,但邮件 ID 会不同)。然后,在将邮件保存到目标文件夹之前,在目标文件夹中搜索带有与原始邮件 ID 匹配的自定义标签的邮件。
这种方法不会 100% 奏效。当同时为多个用户工作的加载项感知到新消息并且所有加载项开始处理它时,您仍然存在竞争条件。即使使用自定义标签,仍然有可能两个加载项在目标文件夹中搜索消息,都没有找到它,然后都将其存储。
为了使其更可靠,您的加载项还可以定期清理目标文件夹以查找此自定义标记重复的消息。
推荐阅读
- c++ - 是否可以将 asio::serial_port 的相同 asio::io_context 用于 asio::steady_timer?
- ghostscript - 使用 -dSAFER 从 Ghostscript 命令访问文件
- vpn - 无法访问安装了 VPN 的服务器中的 zabbix 默认端口 (10050)
- python - 模拟 Python 类的方法并返回动态值
- hadoop - 如何在 Java/Scala 中将 parquet 模式转换为 avro
- mysql - 是否可以在另一个 group_concat 中做一个 group_concat?
- python - 使用 datetime.timedelta 进行时间计算
- d3.js - 使用 d3.zoom() 时如何设置初始位置和比例
- ios - 当 textView isScrollEnabled = false 时使用 pinchGesture 调整字体和框架的大小
- dart - 如何强制 Flutter 设置应用生命周期状态