如何用Thunderbird扩展插入电子邮件标题?
我正在构建一个Thunderbird扩展,并希望将我自己的头添加到所有外发电子邮件(例如<myext-version:1.0>)。 任何想法如何做到这一点? 我知道这是可能的,因为这是在OpenPGP Enigmail扩展中完成的。 谢谢!
以下是我正在处理的一个扩展的代码:
function SendObserver() {
this.register();
}
SendObserver.prototype = {
observe: function(subject, topic, data) {
/* thunderbird sends a notification even when it's only saving the message as a draft.
* We examine the caller chain to check for valid send notifications
*/
var f = this.observe;
while (f) {
if(/Save/.test(f.name)) {
print("Ignoring send notification because we're probably autosaving or saving as a draft/template");
return;
}
f = f.caller;
}
// add your headers here, separated by rn
subject.gMsgCompose.compFields.otherRandomHeaders += "x-test: testrn";
}
},
register: function() {
var observerService = Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService);
observerService.addObserver(this, "mail:composeOnSend", false);
},
unregister: function() {
var observerService = Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService);
observerService.removeObserver(this, "mail:composeOnSend");
}
};
/*
* Register observer for send events. Check for event target to ensure that the
* compose window is loaded/unloaded (and not the content of the editor).
*
* Unregister to prevent memory leaks (as per MDC documentation).
*/
var sendObserver;
window.addEventListener('load', function (e) {if (e.target == document) sendObserver = new SendObserver(); }, true);
window.addEventListener('unload', function (e) { if (e.target == document) sendObserver.unregister();}, true);
将其放入通过撰写窗口加载的.js文件中(例如,通过覆盖chrome://messenger/content/messengercompose/messengercompose.xul)
。
在我的情况下,SendObserver.observe中的检查是必需的,因为我想要进行用户交互,但是您可能会将其忽略。
我不知道答案,但只是一些想法...
我认为thunderbird扩展通常只是xul和js。 来自enigmail网站:
与大多数Mozilla AddOns不同的是,Enigmail包含平台相关部分:它依赖于CPU,编译器,操作系统库和它应该集成的电子邮件应用程序。
查看Enigmail源代码,这可能是相关的部分(用c ++编写)
因此,您可能需要将他们所做的工作转换为js(!)或继续寻找其他示例。
这是另一个可能有用的链接
链接地址: http://www.djcxy.com/p/41945.html上一篇: How do you insert email headers with a Thunderbird extension?