从Maildir中删除重复的邮件

我在我的IMAP服务器的Maildir中有一堆重复的消息。 删除它们的最好方法是什么?

一些相关的观点:

  • 共享消息ID通常是足够好的重复定义。 除了一个重复的消息之外的一个小脚本将会工作。
  • 有时需要根据共享邮件正文来查找重复邮件。 这里共享的合理定义是什么? 按位等效? 换行,转义,字符编码有什么奇怪的区别?
  • 有时在“重复”消息之间有一些有意义的区别。 检查“重复”消息集中的差异的最佳方法是什么? 比较速度?

我已经对上面提到的凯文的脚本做了一些重大的改进,他很友善地接受我的请求。 最终我们将其分解成一个专门的项目,您可以在这里find:

https://github.com/kdeldycke/maildir-deduplicate

对于Linux中的通用文件,我使用fdupes utils删除重复的文件。 我发现它也适用于Maildir消息。

我今天发现的最好的是Kevin Deldycke的maildir-deduplicate 。

  • 它默认忽略X-MIMETrack头,并使用SHA224摘要比较头。
  • 它根本不考虑消息体。
  • 它会自动删除重复项而不要求确认。
  • 它假定你的邮箱在/Users/kevin/Maildir 。 🙂

我敢打赌,有人可以从Rick Sanders的delIMAPdups.pl (他的IMAP工具的一部分)中做出一些幻想。

侏儒的演变[graphics邮件用户代理]有一个内置的function,以删除重复的邮件。 正如在这个帮助页面上解释的那样,它归结为:

  1. select可疑消息(或只是所有消息)
  2. 转到菜单消息 ,select删除重复消息

瞧。

PS Evolution可以在本地(MailDir,MH,Mbox)或通过IMAP访问您的消息。