1. Startseite
  2. Nachrichten
  3. Herunterladen
    1. Thunderbird Release-Version
    2. Thunderbird 140 ESR
    3. Thunderbird 128 ESR
    4. Thunderbird 115 ESR
    5. Thunderbird Beta-Version
    6. Sprachpaket (Benutzeroberfläche)
    7. Wörterbücher (Rechtschreibprüfung)
  4. Hilfe & Lexikon
    1. Anleitungen zu Thunderbird
    2. Fragen & Antworten (FAQ) zu Thunderbird
    3. Hilfe zu dieser Webseite
  5. Forum
    1. Unerledigte Themen
    2. Letzte Beiträge
    3. Themen der letzten 24 Stunden
  • Anmelden
  • Registrieren
  • 
  • Suche
Alles
  • Alles
  • Forum
  • Lexikon
  • Artikel
  • Seiten
  • Erweiterte Suche
  1. Thunderbird Mail DE
  2. jobisoft

Beiträge von jobisoft

  • AttachmentExtractor wird zu "AttachmentExtractor Continued" für Thunderbird 60 und 68

    • jobisoft
    • 18. August 2019 um 17:35

    Also ich komme mit gitlab nicht klar. Ich habe meinen Fork gelöscht, neu geforked, die Änderungen neu gemacht und kann jetzt trotzdem nur auf deinen master mergen. Hier ist jetzt einfach die "neue" Datei am Stück, kannst du die bei dir einfach selbst committen?

    aec_js_window.js.txt

    Wenn ich merge requests erstellen will, kann ich nur lokale MR erstellen, dein Repo kann ich garnicht auswählen. Manchmal taucht eine vorgegebene Option "merge in ThunderbirdMailDE/attachmentextractor master", wo ich aber nix änder kann. Sehr sehr komisch. Musst du mir irgendwie eine merge berechtigung geben?

    Zu deiner Frage: Es geht nicht um Performance. Es geht darum, dass fetch() async ist und wir das jetzt benutzen müssen, um an die size zu kommen. Async ist die Zukunft, weil das multiple threads nutzen kann. Async ist also auf jeden Fall gut (deswegen ist fetch() asyny). Man muss keine Callbacks mehr definieren (so wie jetzt bei setTimeout, z.B.), die geschachtelt echt widerlich werden. Mit async/await kann man async code schreiben wie früher sequentiellen code.

    Das Problem, man kann sync code nicht einfach so in async code umwandeln. Die Funktion saveAtt() muss auf jeden Fall async werden, damit wir darin await getSize() machen können. Jetzt muss man in der call sequence nach oben gehen und eigentlich jeden Aufruf in der Hierarchie überprüfen und gucken, wo man den Übergang von sync zu async machen kann. setTimerouts sind super, die erzeugen ja quasi bereits parallelen async code und daher kann man da ganz prima den Übergang machen.

    Problematisch ist der Aufruf von saveAtt(0) (ich hab gerade ein Kleinkind aufm Schoß, daher keine Zeilennummern). Wenn ich das so lasse wie jetzt bei mir committet, ändert sich der Execution flow: Anstatt saveAtt(0) auszuführen, wird es als Hintergrund-Task geplant und dann direkt weiter gemacht, ohne auf das Ausführen von saveAtt(0) zu warten. Das muss ich mir noch genauer Angucken. Kannst du einfach mal ausprobieren, ob es funzt?

  • AttachmentExtractor wird zu "AttachmentExtractor Continued" für Thunderbird 60 und 68

    • jobisoft
    • 18. August 2019 um 13:52

    GitLab has some strange limitations. I cannot create a merge request for your dev-next-68 branch. Only into your master. Even though I commited my changes into the dev-next-68 branch of my fork.

    Could you make your dev-next-68 branch the default branch (if that is possible with GitLab)?

  • TbSync testen

    • jobisoft
    • 18. August 2019 um 13:20

    Email erhalten, danke!

    Dürfte ich dich bitten, mit allen TbSync Modulen in deinem TB68 auf den beta release channel zu wechseln, und es nochmal zu probieren, nur um auszuschließen, dass ich es nicht schon gefixt habe? Über den beta release channel, kann ich - falls nötig - auch viel schneller den Fix für dieses Problem ausliefern.

    https://tbsync.jobisoft.de

    Viele Grüße,
    John

  • TbSync testen

    • jobisoft
    • 18. August 2019 um 12:21
    Zitat von edvoldi

    Bei einer Synchronisation von TB 60.x auf 68.x RC taucht der Fehler auf, egal ob Cardbook oder Tb Adressbuch.

    Entschuldigung, wenn ich nochmal nachfrage:

    1. In Cardbook in TB60 einen Kontakt gelöscht
    2. Zur Kontrolle in TB60 mit Tbsync gelöscht: Wie erwartet wird der Kontakt im lokalen TbSync Adressbuch gelöscht.
    3. Auf TB68 gewechselt und dort ebenfalls mit TbSync synchronisiert: Fehler 412.

    Ist das 100% reproduzierbar? Darf ich ein DebugLog von dem Fehler haben? Dazu:

    - unter "Hilfe" im TbSync Manager das Debug logging aktivieren

    - TB68 neu starten

    - in den erweiterten Thunderbird-Einstellungen den Schlüssel "extensions.tbsync.log.userdatalevel" auf 9 setzen (das kommt bald auch ins UI)

    - versuchen den Fehler zu reproduzieren

    - unter Hilfe im Account Manager einen BugReport erstellen.

    - du kannst des Debuglog vor dem Abschicken noch zurechtstutzen, wenn es zu viele Infos enthält, die ich nicht sehen soll.

    Nochmals vielen Dank für deine Tests!

  • TbSync testen

    • jobisoft
    • 18. August 2019 um 11:09

    Hallo EDV-Oldi,

    dein Test war doch aber: Kontakt in Cardbook (in TB60) verschieben und dann das gleiche Account in TB68 mit TbSync syncen oder? Wo war da TbSync 1.7.x involviert? Aber es ist glaube ich eine gute Idee, TbSync 1.7.x für die Tests nicht zu benutzen, um nicht ein verfälschtes Bild zu bekommen.

    Zu dem Fehler, war das wirklich ein "402"? Das heißt "Payment Required" und das hab ich echt noch nie gesehen.

    https://developer.mozilla.org/de/docs/Web/HTTP/Status/402

  • TbSync testen

    • jobisoft
    • 17. August 2019 um 18:55

    Könnte ich auf dem Server, auf dem das passiert ist, ein Testkonto haben?

  • AttachmentExtractor wird zu "AttachmentExtractor Continued" für Thunderbird 60 und 68

    • jobisoft
    • 17. August 2019 um 00:41

    Wenn du übers Wochenende zunächst erstmal den alten Code rauswirfst, könnte ich am Montag den grundlegenden Umbau hin zu async function machen (den du für fetch() zwingend brauchst). Das ist nicht sehr viel, aber es zu erklären würde länger dauern, als es zu machen.

  • TbSync testen

    • jobisoft
    • 16. August 2019 um 11:17

    Hallo EDV-Oldi,

    Zitat von edvoldi

    Wenn Du jetzt noch das TbSync-Symbol statt den Text einsetzt, finde ich das auch noch etwas auffälliger.

    Das muss ich mir angucken, aber da für TB76 eh wieder alles ganz anders wird, werde ich das jetzt wahrscheinlich nicht ändern. Mal gucken.

    Zitat von edvoldi

    Dann noch eine Anmerkung zu dem Text der beim Neustart von TB unten erscheint.
    Wer von den normal User weiß wann das Update auf TB 68.x kommt?
    Die beenden Thunderbird und beim nächsten Start ist die neuen Version da.

    Kannst Du nicht in der neuen Version eine Funktion einbauen, die beim ersten Start in TbSync alle Konten Deaktiviert?

    Ja, das ist echt schwierig. Ich habe lange versucht eine automatische Migration hinzubekommen, aber das ist ECHT schwierig und es ist nicht auszuschließen, dass ich dabei Daten der Nutzer kaputt mache. Es hat sich so viel unter der Haube verändert. Das Risiko war mir am Ende einfach zu hoch. Als absehbar war, das ich nicht migrieren kann, bin ich dann sogar mit der Axt durch den Code und habe ganz viele alte Sachen rausgehauen, die ich schon ewig mit mir rumgeschleppt habe. Und das war gut, der Code ist jetzt viel sauberer.

    Deswegen erzwinge ich jetzt tatsächlich eine neue Synchronisation mit TB68 und deaktiviere alle Konten, wie du vorgeschlagen hast.

    Das Problem: Sollte eines dieser Konten vor dem Upgrade auf TB68 mit dem Server nicht synchronisiert sein, darf ich die lokalen Kalender/Adressbücher ja nicht einfach löschen (was eigentlich bei jeder Kontodeaktivierung gemacht wird), weil dann würde ich ja evtl. Daten vernichten. Also lasse ich bei der erzwungenen Kontodeaktivierung alle Objekte aber markiere sie als "getrennt":

    Wenn der User dann seine Konten neu aktiviert, werden alle seine Resourcen neu erstellt und dann hat er sie quasi doppelt. Ich bin auf der sicheren Seite, weil ich keine Daten lösche, aber der User muss nun selber gucken, ob und welche Daten er evtl von Hand übernehmen muss. Genau dass kann er vermeiden, wenn er die Konten selber vor dem Upgrade synct und deaktiviert.

    Thunderbird 68 wird zu Beginn nicht per Auto Update verteilt, das passiert erst mit dem ersten Point Release. Am Anfang kann der User also selber bestimmen, wann er zu TB68 wechselt.

    Ist alles nicht schön, aber besser hab ich es nicht hinbekommen.

  • TbSync testen

    • jobisoft
    • 15. August 2019 um 23:56
    Zitat von edvoldi

    ist es möglich das Symbol von TbSync links neben den Tagesplan zu legen?

    Hab es mal nach links geschoben (1x Beta-Release-Channel Addons aktualisieren).

    Mir persönlich gefällt es am rechten Rand aber besser. Hm. Mal gucken ob ich mich dran gewöhne.

  • AttachmentExtractor wird zu "AttachmentExtractor Continued" für Thunderbird 60 und 68

    • jobisoft
    • 14. August 2019 um 22:18

    Um an die Attachment Größe zu kommen, hab ich das hier als Vorlage genommen.: https://searchfox.org/comm-central/s…HdrView.js#1806

    Bei meinen Tests hat das funktioniert, aber es gibt noch offene Fragen.

    Zunächst habe ich eine weitere Methode von AEMessage definiert:

    Code
      AEMessage.prototype.getAttSize = async function(_url, isExternalAttachment, isLinkAttachment = false) {
        let url = _url;
        let size = 0;
        let options = { method: "HEAD" };
    
       // NOTE: For internal mailbox, imap, news urls the response body must get
       // the content length with getReader().read() but we don't need to do this
       // here as libmime streams it already in addAttachmentField(). For imap or
       // news urls with credentials (username, userPass), we must remove them
       // as Request fails such urls with a MSG_URL_HAS_CREDENTIALS error.
        if (url.startsWith("imap://") || url.startsWith("news://")) {
          let uri = Services.io.newURI(url);
          if (uri.username)
            url = url.replace(uri.username + "@", "");
          if (uri.userPass)
            url = url.replace(uri.userPass + "@", "");
        }
    
        let request = new Request(url, options);
    
        await fetch(request)
          .then((response) => {
            if (!response.ok) {
              return null;
            }
    
            if (isLinkAttachment) {
              if (response.status < 200 || response.status > 304) {
                return null;
              }
            }
    
            return response;
          })
          .then(async (response) => {
            if (isExternalAttachment) {
              size = response ? response.headers.get("content-length") : 0;
            } else {
              let data = await response.body.getReader().read();
              size = data.value.length;
            }
          })
          .catch((error) => {
            console.warn("getAttSize: error - " + error.message);
          });
    
        return size;
      };
    Alles anzeigen

    und hier eingefügt:

    https://gitlab.com/ThunderbirdMai…_window.js#L883

    Aufgerufen hab ich diese Funktion dann zwischen Zeile 897 und 898, also hier:

    https://gitlab.com/ThunderbirdMai…_window.js#L898

    mit dieser Zeile:

    this.getAttSize(attachment.url, attachment.isExternalAttachment).then(function(size) { console.log("Size: " + size); });

    Das ist jetzt erstmal nur zum Testen, ob du damit für die verschiedenen Attachment Typen an die richtige Größe kommst.

    1. Die Methode die ich als Vorlage benutzt habe, kennt isLinkAttachment, dein AddOn scheint das nicht zu kennen, hab es daher per default auf false gesetzt. Sagt dir isLinkAttachment was?

    2. Durch fetch() ist die neue getAttSize Methode async, daher auch der Aufruf mit .then(). Kennst du async/await und Promises? Im Prinzip gabelt sich der Programmablauf durch this.getAttSize() auf, der Aufruf wird in den Hintergrund geschoben und sofort die nächste Zeile (899) abgearbeitet. Irgendwann ist die async Funktion im Hintergrund fertig und führt dann die im then() angegebene Funktion aus. Ähnlich wie ein setTimeout, nur das der Callback nicht nach einer bestimmten Zeit ausgeführt wird, sondern wenn eine andere Funktion fertig ist.

    Wenn du damit die richtigen Größen bekommst, und du sicher bist, dass du dann nur noch die Thunderbird eigenen Funktionen und z.B. nicht mehr saveAttachmentToFolder benutzen willst, dann wäre es glaube ich gut, den ganzen Kram dann wirklich zu entfernen (neuer branch im gitlab) und in der reduzierten Version dann echte async Funktionen zu benutzen - oder alles nach dem Aufruf von getAttSize in den .then() zu stopfen, aber das wird so unleserlich...

    Erstmal is wichtig, bekommst du den Zeitstempel (mein vorletzter Post) und die Größe und könntest somit den alten Kram rauswerfen?

  • AttachmentExtractor wird zu "AttachmentExtractor Continued" für Thunderbird 60 und 68

    • jobisoft
    • 14. August 2019 um 17:55

    Überall wo du Zugriff auf aewindow.currentTask hast, kannst du via aewindow.currentTask.getMessageHeader() auf die Header Daten der Email zugreifen (https://developer.mozilla.org/en-US/docs/Moz…BHdr#Attributes)

    In AEMessage.prototype.saveAtt kannst du direkt als erstes, also hier

    https://gitlab.com/ThunderbirdMai…_window.js#L885

    mal folgendes einfügen

    console.log(aewindow.currentTask.getMessageHeader().subject + " : " + aewindow.currentTask.getMessageHeader().dateInSeconds)

    und bekommst für jede Mail den gesuchten Timestamp.

    Hilft das?

  • AttachmentExtractor wird zu "AttachmentExtractor Continued" für Thunderbird 60 und 68

    • jobisoft
    • 13. August 2019 um 19:03

    Also sollte ich eher veruchen über die TB funktionen Attachment Größe und Datum zu erhalten, damit die alte Funktion gelöscht und die Einstellungen vereinfacht werden können. Richtig?

  • AttachmentExtractor wird zu "AttachmentExtractor Continued" für Thunderbird 60 und 68

    • jobisoft
    • 13. August 2019 um 18:06

    Ich versuche mich gerade einzulesen.

    Kannst du kurz erklären, was konzeptionell der Unterschied zwischen aeMessenger.saveAttachmentToFolder und aewindow.messenger.saveAttachmentToFile ist, und warum der erstere ein file Objekt zurückgibt und das originale file Objekt des Attachments überschreibt?

    aeMessenger.saveAttachmentToFolder ist die Funktion, die am Ende die problematische startupUrl Funktion aufruft, richtig?

    Trennen beide Funktionen auch das Attachment ab (also löschen es aus der Mail?) . Wo passiert das?

    Danke und viele Grüße

    John

  • TbSync testen

    • jobisoft
    • 13. August 2019 um 16:57

    Die Reihenfolge ist alphabetisch, und da der AccountName als prefix benutzt wird, kannst du den als grobe Sortierung benutzen:

    - account deaktivieren

    - account umbenennen

    - account aktivieren

    Eine Änderung des AccountNamens wärend das Account aktiviert ist hat keine Auswirkung auf die bereits angelegten Adressbücher. Daher einmal aus und wieder an.

  • TbSync testen

    • jobisoft
    • 13. August 2019 um 14:53

    Du kannst einfach den von Mozilla (ATN) nehmen, der CatMan ist nicht Teil des beta-release-channels.

    EAS ist mein Provider für ExchangeActiveSync (outlook.de, office365 und andere)

  • TbSync testen

    • jobisoft
    • 13. August 2019 um 13:54
    Zitat von edvoldi

    Ich teste weiter.

    Seit heute wird in der TB60 Version ein Banner eingeblendet, das ich empfehle, vor einem Update auf TB68 alle TbSync Konten zu synchronisieren und dann zu deaktivieren und nach dem Update auf TB68 diese wieder zu aktivieren. Das wurde vor ca 1h auf ATN freigeschaltet.

    Hast du das bereits gesehen/gemacht? Wenn nicht, empfehle ich in TB68 alle Adressbücher/Kalender, die von TbSync verwaltet werden, im Thunderbird Adressbuch bzw. in Lightning zu löschen, danach alle TbSync Konten zu deaktivieren, neu zu aktivieren und dann sauber neu zu synchronisieren.

    Danke fürs Testen!

  • TbSync testen

    • jobisoft
    • 13. August 2019 um 13:46
    Zitat von edvoldi

    Da ich das Profil übernommen habe dachte ich auch die Einstellungen von TbSync würde übernommen, das ist aber leider nicht der Fall, iIch musst alles neu einrichten.

    Im Beta Release Channel ist das behoben, die Account Daten werden migriert :-) Das ist leider noch nicht auf ATN angekommen.

  • TbSync testen

    • jobisoft
    • 13. August 2019 um 12:33

    Bzgl. Gender: Für vCard3 könnte man X-GENDER benutzen. Guck ich mir an.

    Zitat von edvoldi

    Wie sieht es eigentlich mit der Neugestaltung des Thunderbird-Adressbuch aus?

    Es gibt wohl Pläne für TB76 etwas am Adressbuch zu machen, aber das glaube ich erst, wenn ich es sehe :-) Solange versuche ich mit TbSync auszuhelfen.

    Wenn Bedarf besteht, könnte ich mein vCard Interface auch für lokale Adressbücher freischalten. Es ist dabei übrigens völlig egal, in welchem Format die Adressbuchdaten intern abgespeichert sind, solange es eine funktionierende vCard import/export Möglichkeit gibt. Derzeit benötige ich das noch nicht, weil die Daten bei TbSync ja immer auch auf einem CardDAV Server liegen und da importiert/exportiert werden können - bei einer Freischaltung für lokale Adressbücher wird die Import/Export Funktion aber natürlich unentbehrlich.

    Seit ein paar Tagen gibt es Release Candidates von TB68, du könntest also mit deinen Tests weitermachen :-)

    https://ftp.mozilla.org/pub/thunderbir…8.0-candidates/

    Für TbSync und seine Provider nutze aber bitte meinen Beta-Release-Channel, da ich da deutlich schneller Fehler fixen kann als über ATN. Ich habe gestern ein paar Fehler gefunden, die ich heute morgen in meinem Beta-Release-Channel gefixt habe, auf ATN hängen sie aber noch im Review:

    https://tbsync.jobisoft.de

    Im Beta-Release-Channel ist auch web.de schon drin :-)

    VG
    John

  • AttachmentExtractor wird zu "AttachmentExtractor Continued" für Thunderbird 60 und 68

    • jobisoft
    • 13. August 2019 um 06:34
    Zitat von Thunder

    Offensichtlich geht das auch schon (ab circa Version 64) für Thunderbird 68?

    Das kann ich dir nicht sagen, ich nutze es noch nicht, da ich derzeit nur für TB68 entwickle. Ich update für TB69 erst nach release von TB68.

    Wenn du mit TB68 testen willst, es gibt jetzt release candidates:

    https://ftp.mozilla.org/pub/thunderbir…8.0-candidates/

  • AttachmentExtractor wird zu "AttachmentExtractor Continued" für Thunderbird 60 und 68

    • jobisoft
    • 13. August 2019 um 00:16

    Ganz kurz: ab 69 musst du fur XUL elemente document.createXULElement benutzen.

    Leider stecke ich gerade selber fest, melde mich später.

  • Hilfreichste Antworten

Aktuelle Programmversion

  • Thunderbird 142 veröffentlicht

    Thunder 21. August 2025 um 15:17

Aktuelle 140 ESR-Version

  • Thunderbird 140.2.1 ESR veröffentlicht

    Thunder 3. September 2025 um 00:18

Aktuelle 128 ESR-Version

  • Thunderbird 128.14.0 ESR veröffentlicht

    Thunder 21. August 2025 um 15:04

Keine Werbung

Hier wird auf Werbeanzeigen verzichtet. Vielleicht geben Sie dem Website-Betreiber (Alexander Ihrig - aka "Thunder") stattdessen etwas aus, um diese Seiten auf Dauer finanzieren zu können. Vielen Dank!

Vielen Dank für die Unterstützung!

Kaffee ausgeben für:

Per Paypal unterstützen*

*Weiterleitung zu PayPal.Me

Thunderbird Mail DE
  1. Impressum & Kontakt
  2. Datenschutzerklärung
    1. Einsatz von Cookies
  3. Nutzungsbedingungen
  4. Spendenaufruf für Thunderbird
Hilfe zu dieser Webseite
  • Übersicht der Hilfe zur Webseite
  • Die Suchfunktion benutzen
  • Foren-Benutzerkonto - Erstellen (Neu registrieren)
  • Foren-Thema erstellen und bearbeiten
  • Passwort vergessen - neues Passwort festlegen
Copyright © 2003-2025 Thunderbird Mail DE

Sie befinden sich NICHT auf einer offiziellen Seite der Mozilla Foundation. Mozilla®, mozilla.org®, Firefox®, Thunderbird™, Bugzilla™, Sunbird®, XUL™ und das Thunderbird-Logo sind (neben anderen) eingetragene Markenzeichen der Mozilla Foundation.

Community-Software: WoltLab Suite™