【问题标题】:read thunderbird address mab files content读取雷鸟地址mab文件内容
【发布时间】:2013-07-24 09:21:04
【问题描述】:

我的 TBIRD 地址簿上有几个地址列表。

每次我需要编辑包含在多个列表中的地址时,查找哪个列表包含要修改的地址是一件很痛苦的事情。

作为一个帮助工具,我想阅读几个文件并给用户一个列表 xxx.MAB 文件仅包含一次搜索的搜索地址。

有了生成的列表,用户可以简单地去编辑正确的地址列表。

想至少知道提到的 MAB 文件的格式,所以我可以 OPEN + SEARCH 将字符串放入文件中。

提前致谢

PD 已经询问了 mozilla 论坛,但是 mozilla 没有计划将地址合并到一个主文件中,并且不同的列表只包含指向主文件的链接。有一个人想这样做,但由于缺乏资源,他不知道什么时候,

在这个论坛上有一个类似的问题提到了 MORK 文件,但我实际的 TBIRD 看起来所有地址都包含在 MAB 文件中

【问题讨论】:

  • MAB 文件是 Mork 格式...

标签: file thunderbird


【解决方案1】:

【讨论】:

  • 问题是关于 MAB 文件,而不是 Mork 文件。您是否暗示 Mork 链接也会对 MAB 有所帮助?
  • 正如 Ken 的回答和我对问题的评论中所述,MAB 文件采用 Mork 格式。此处还注明:wiki.mozilla.org/Address_Book
  • Perl 的 Mozilla::Mork 模块可以很好地满足我的需求。
  • python 代码不再工作(而且仅限于 python2)。但是我在 mozilla wiki 中找到了一个指向“demork”的链接,它开箱即用地做得很好:bug241438.bmoattachments.org/attachment.cgi?id=175024
【解决方案2】:

恐怕没有答案可以为您提供适当的解决方案。

MORK 是一个文本数据库,其中包含文件地址簿数据(.mab 文件)和邮件文件夹摘要(.msf 文件)。

该格式由 David McCusker 编写,混合了各种数字命名空间,没有记录,似乎不再被开发/维护/支持。掌握它的唯一方法是对它进行逆向工程,同时使用这种格式查看源代码。

然而,有经验的人试图为这种文件格式编写解析器,但没有成功。根据 Wikipedia 的说法,前 Netscape 工程师 Jamie Zawinski 对格式有这样的看法:

...我见过的最伤脑筋的文件格式 我十九年的职业生涯

This page 声明如下:

简而言之,让我们数一数它(莫克的)罪恶:

  • 两个不同的数字命名空间重叠。
  • 它无法决定使用哪种字符引用语法:反斜杠?带美元符号的十六进制编码?
  • 有时允许使用 C++ 行 cmets,但有时 // 只是 URL 中的一对字符。
  • 它会进行所有这些严肃的压缩工作(两个不同的字符串内部哈希表),然后写出 Unicode 字符串 不使用 UTF-8:写出解压后的 wchar_t 字符!
  • 更糟糕的是,它使用 3 字节编码对每个 wchar_t 进行十六进制编码,这意味着文件大小将是 3x 或 6x(取决于 whchar_t 是否为 2 个字节或 4 个字节。)
  • 它伪装成“文本”文件格式,而实际上它只是另一个二进制 blob 文件,只不过它代表了它的所有魔力 ASCII 中的数字。它不是人类可读的,它不是手动编辑的,所以 唯一的好处是它使用短线和 不使用二进制字符是它使文件更大。哦 等等,我的错误,这实际上根本没有好处。”

挫败感在这里闪耀,这显然不是一项简单的任务。

因此,在 Mozilla 产品之外显然不存在真正能够解析这种格式的解析器。

我过去曾对复杂的文件格式进行逆向工程,并且知道只要有耐心和适量的精力就可以完成。

遗憾的是,这似乎也是您唯一的选择。一个好的起点是查看Thunderbird's source code

我知道这不会给你一个直接的解决方案,但我认为考虑到这种格式的情况,这是对这个问题的唯一答案。

当然,您可以随时查看extension API,看看它是否允许您以比直接处理文件格式更结构化的方式访问所需的数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-06
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    相关资源
    最近更新 更多