Как Вы вставляете почтовые заголовки с расширением Thunderbird?

То, что я хочу, кажется тонкой функцией:

enter image description here

Так что, где я обычно щелкаю правой кнопкой мыши каталог, я нажимаю его сосредоточиться на файлах проекта, а затем нажмите CTRL A, который выбирает весь проект. Щелчок правой кнопкой мыши по всему выделенному проекту дает возможность «Подтвердить каталоги» [множественное число]. И снова также опция «Push Commits».

enter image description here

7
задан sgoel 2 October 2008 в 12:41
поделиться

2 ответа

Вот код от одного расширения, я продолжаю работать:

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 \r\n
     subject.gMsgCompose.compFields.otherRandomHeaders += "x-test: test\r\n"; 
     }

  },
  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 была необходима в моем случае, потому что я хотел сделать взаимодействие с пользователем, но Вы могли, вероятно, пропустить его.

3
ответ дан 7 December 2019 в 14:39
поделиться

Я не знаю ответ, но просто некоторые мысли...

Я думаю, что расширения тандерберда обычно просто xul и js. От enigmail сайта:

В отличие от большей части Mozilla AddOns, Enigmail содержит зависимые части платформы: это зависит от ЦП, компилятора, библиотек операционной системы и почтовой программы, в которую это должно интегрироваться.

Смотря на исходный код Enigmail, это могло бы быть соответствующим разделом (записанный в C++)

Таким образом, Вы, возможно, должны были бы или перевести то, что они сделали в js(!) или продолжают искать другой пример.

Вот другая ссылка, которая могла бы быть полезной

1
ответ дан 7 December 2019 в 14:39
поделиться