|
|
Mozilla扩展系列链接: 1,浅谈基于Mozilla Thunderbird的扩展开发 2,基于Mozilla平台的扩展开发(续)----XPCOM组件篇 |
Thunderbird中已经有保存附件的功能,但需要手动去操作,既然手头有它的源代码,为什么我们不自己尝试对它进行修改,从而使得它能自动保存所有附件呢?Ok,这篇文章就是基于这样思想的一个尝试。
首先明确一个前提,本文并不想开发一个扩展,而是尝试直接修改Thunderbird的源代码,但你也可以将它修改为一个扩展,这里为了调试开发简单起见,因此我选择了直接修改其代码。
要想自动保存附件,首先需要知道在它源代码中的哪个点去执行保存附件这样一个动作,在多次试验后发现可以msgMail3PaneWindow.js中的177行处的folderListener对象进行修改如下:
接下来那些具体保存邮件的代码这里就省略了,具体可以参考上一篇文章,要重点提的一点是这一句代码:
当执行它时,会加载邮件信息,从而会触发对附件的处理函数,因此我们可以在附件的处理函数中进行保存附件的处理。
msgHdrViewOverlay.js文件中第425行处的handleAttachment方法就是我们需要修改的地方。
真正完成保存附件的是下面的aeMessenger对象:
注:这里设置了一个流监听器的作用是为了对文件流的写入进行监控,并不是必须的
好了,这下就可以用make命令重新编译thunderbird源代码了,测试时先启动thunderbird,当接收到新邮件并且其含有附件时,就会自动下载并保存。
如果需要完整的源代码,请发email至:phinecos#163.com(#改为@)
1, http://www.eviljeff.com/?page=moz-extensions