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. Thunder

Beiträge von Thunder

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

    • Thunder
    • 18. August 2019 um 17:06

    Ich habe mir Deine Änderungen in Deinem Repository gerade mal angesehen.

    Ist der Grund für Deinen Wunsch nach async gerade an der von Dir umgesetzten Stelle die Performance? Ist das der zeitliche Haupt-Flaschenhals, der bei großen Datenmengen ausbremst? Was soll ich dann mit dem Timeout dort machen? Wenn ich die Folgen richtig verstehe, müsste ich per await / then (oder was auch immer) dafür sorgen, dass es nicht zu Problemen durch async kommt, oder?

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

    • Thunder
    • 18. August 2019 um 16:44
    Zitat von jobisoft

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

    Sorry, erst jetzt gesehen. dev-next-68 ist jetzt der default branch.

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

    • Thunder
    • 18. August 2019 um 02:11

    Okay,

    jobisoft

    ich denke der Code ist für Deinen "Umbau" ausreichend vorbereitet. Alle alten (internen) Routinen habe ich entfernt, soweit diese nicht mehr innerhalb des Codes verwendet werden.

    Der Code mit aktuellem Stand hat neben den von uns besprochenen Problemen (Zeitstempel, Mindestgröße und der von Dir "gewünschte" async-Umbau) noch ein kleines weiteres Problem, das ich anschließend angehen würde: Für das Erstellen einer Report-Datei (in den erweiterten Einstellungen des Add-ons) verschluckt sich der Code noch an den theoretisch möglichen CSS-Dateien. Solange man auf CSS komplett verzichtet, funktioniert das Erstellen der Report-Dateien. Sobald aber eine CSS-Datei im Report verlinkt oder direkt eingebunden werden soll, schlägt es fehl.

    Ich habe zur Unterscheidung einen Branch "dev-stable-68" erstellt, in dem der momentan funktionierende Code drin ist.

    Du kannst nun bitte im Branch "dev-next-68" den async-Umbau etc. vornehmen - Danke!

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

    • Thunder
    • 17. August 2019 um 00:45
    Zitat von jobisoft

    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.

    Dann mache ich Morgen einen neuen Branch auf, in dem ich den alten Code raus werfe und melde mich bis Montag wieder.

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

    • Thunder
    • 17. August 2019 um 00:21

    N'Abend!

    Ich habe jetzt vor meiner weiteren Arbeit wieder ein neues Tag in GitLab erstellt, in dem es eine Menge geänderten Code gibt. Die Änderungen sollten allerdings nicht für die hier besprochenen Probleme relevant sein.

    1.) Deine Hilfen zu Zeitstempel der Mail und Größe der Attachments funktionieren (für den console.log).

    2.) isLinkAttachment ist vermutlich true, wenn es sich um einen Anhang handelt, der nicht als MIME-Part mit der Mail gesendet wurde - also letztlich quasi extern verlinkt ist?

    Wenn ich am Wochenende (trotz, oder gerade wegen, Rufbereitschaft) genügend Zeit habe, werde ich versuchen, Deinen Code dann auch in den Funktionen umzusetzen / zu nutzen.

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

    • Thunder
    • 14. August 2019 um 23:09

    Puhh, das ist schon Mal super von dir. Ich werde bestimmt 2-3 Tage brauchen, um mir das anzuschauen.

    Ich habe relativ wenig Ahnung vom Programmieren, habe aber schon von den Promises gehört. Selbst die Prototypes verstehe ich nicht wirklich und nutze den Code halt so wie er ist.

    Bis Morgen werde ich die Menüs wohl fertig überarbeitet und die Favoriten final eingebaut haben. Dann gehe ich an Deine Vorschläge.

    Danke

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

    • Thunder
    • 13. August 2019 um 19:06

    Das wäre bestimmt die beste Lösung, denke ich.

    Wenn Dir oder jemand anderem übrigens auf GitLab etwas auffällt, was ich anders machen sollte, dann gebt mir Rückmeldung. Es ist das absolut erste mal, dass ich diese Wochen mit Git / GitLab arbeite. Es ist nicht gerade leicht sich in die Logik der Berechtigungen und der anderen Dinge rein zu denken. Nebenbei verwende ich gleichzeitig auch das erste Mal einen Code-Editor (Visual Studio Code), nachdem ich Jahre lang mit UltraEdit lokal bei mir gearbeitet hatte... Ohne Suchmaschine und Youtube wäre ich wohl verloren :/.

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

    • Thunder
    • 13. August 2019 um 18:58

    Die relevanten Prefs zu .detachMode:

    actionafterextract.detach.mode

    autoextract.detach.mode

    und zu isExtractEnabled:

    extract.mode

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

    • Thunder
    • 13. August 2019 um 18:51

    Übrigens wird der Begriff bzw. die Variablen "...detach" eigentlich verwirrend verwendet. Detach kann mit oder ohne Löschen sein... Und Detach kann auch ohne Speichern sein, so dass nur gelöscht wird oder dass die Attachments gar nicht angefasst werden, sondern nur die Mail selbst manipuliert wird. Im JS-Code sind zwei Variablen entscheidend/hilfreich für mich:

    .detachMode (aus den allgemeinen Einstellungen)

    • kann 0, 1 oder 2 sein (im manuellen Modus)
      kann 1 oder 2 sein (im Automatik-Modus)
      0 = Löschen mit Thunderbirds Routinen
      1 = Löschen mit AE-Routinen
      2 = nur Abtrennen mit AE-Routinen
    • Ich habe diese Option quasi inaktiviert, indem ich sie an 2 initialen Stellen einfach mit "0" überschreibe. Somit wird immer mit Thunderbirds eigenen Routinen gelöscht. Zusätzlich habe ich dazu eine neue Option eingeführt, die festlegt ob für das Löschen jeweils pro E-Mail eine Rückfrage erfolgen soll: .detachWithoutConfirmation
      Das funktioniert bei meinem Tests absolut einwandfrei.

    Es wäre denkbar, dass meine obigen Maßnahmen momentan zu Folge-Fehlern in der Logik der Funktionen führen, wenn es nun um folgendes geht:

    isExtractEnabled (aus den erweiterten Einstellungen)

    In den erweiterten Einstellungen kann man das Speichern der Attachments ganz deaktivieren oder zwischen Thunderbird- und AE-Abtrennfunktion wählen. Diese Option überschneidet sich mit der vorherigen Option, die ich ja letztlich zur Zeit ausgeblendet und überschrieben habe.

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

    • Thunder
    • 13. August 2019 um 18:30
    Zitat von jobisoft

    der Unterschied zwischen aeMessenger.saveAttachmentToFolder und aewindow.messenger.saveAttachmentToFile

    aeMessenger.saveAttachmentToFolder ist die "eigene" Routine des Attachments, die scheinbar aus dem C++ abgeleitet wurde. Dies wird momentan wohl nur noch gebraucht, wenn man bestimmte Attachments aus dem Objekt/Array raus nehmen möchte (aufgrund der Dateigröße), oder wenn man das Datum der zu speichernden Attachments mit dem Empfangsdatum der jeweiligen E-Mail machen will (also letztlich das Datum in den Meta-Daten der resultierenden Datei auf der Festplatte).

    aewindow.messenger.saveAttachmentToFile ist der Aufruf von Thunderbirds eigener Detach-Routine. Ich konnte für diese Routine bereits erreichen, dass (optional) nicht mehr bei jeder E-Mail gefragt wird, ob die Dateien tatsächlich gelöscht werden sollen.

    Zitat von jobisoft

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

    Das ist richtig.

    Zitat von jobisoft

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

    JavaScript: aec_js_windows.js
            case states.DETACH:
              if (thistask.isDetachEnabled && !this.isNewsMessage() && !this
                .isRSSMessage()) {
                aewindow.aedump('{function:AEMessage.doDetach}\n', 2);
                aewindow.progress_tracker.state = states.DETACH;
                thistask.listeningforMessageId = thistask.getMessageHeader()
                  .messageId;
                var acl = aewindow.arraycompact(this.attachments_ct);
                if (acl.length > 0) {
                  if (thistask.detachMode !== 0) {
                    // AEC experimental detach routines
                    aewindow.aedump('>>>> thistask.detachMode !== 0 \n', 2);
                    var deleteAtt = (thistask.detachMode === 1) || !thistask
                      .isExtractEnabled;
                    var savedfiles = (deleteAtt) ? null : aewindow
                      .arraycompact(this.attachments_savedfile);
                    this.detachTempFile = aeMessenger.detachAttachments(
                      aewindow.messenger, aewindow.msgWindow, acl,
                      aewindow.arraycompact(this.attachments_url),
                      // use .map(encodeURIComponent) to display nonASCII correct
                      // if there is an confirmation dialog
                      aewindow.arraycompact(this.attachments_display.map(encodeURIComponent)),
                      aewindow.arraycompact(this.attachments_uri),
                      savedfiles);
                    } else {
                    // Thunderbirds own detach routines
                    aewindow.aedump('>>>> thistask.detachMode === 0 \n', 2);
                    aewindow.messenger.detachAllAttachments(acl.length, acl,
                      aewindow.arraycompact(this.attachments_url),
                      // use .map(encodeURIComponent) to display nonASCII correct
                      // if there is an confirmation dialog
                      aewindow.arraycompact(this.attachments_display.map(encodeURIComponent)),
                      aewindow.arraycompact(this.attachments_uri),
                      false,  // false = do not save(?) or ask for destination folder (?)
                      thistask.detachWithoutConfirmation  // if true = delete without warning
                    ); 
                  }
                  // console.log("setTimeout");
                  // seems to be working okay
                  thistask.detachCancellationTimeout = setTimeout(function() {
                    aewindow.currentMessage.doAfterActions(states
                    .DELTEMPFILE)
                  }, 2000);
                  break;
                }
              }
    Alles anzeigen

    Die "eigenen" Routinen des Add-ons verstehe ich leider oftmals auch noch nicht richtig. In obigem Code habe ich comments drin, wo ae-eigener Code und wo Thunderbirds Code beginnt bzw. aufgerufen wird.

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

    • Thunder
    • 13. August 2019 um 09:22
    Zitat von jobisoft

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

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

    Danke, ich verfolge die Newgroup in der das geschrieben wurde und habe dort auch Deine Beiträge gesehen ;-)

    Momentan teste ich primär mit dem 68er RC, aber auch mit der 69er-Beta. Das erspart mir hoffentlich, dass ich Dinge "programmiere", die anschließend nicht mehr zu gebrauchen sind. Dabei ist mir auch schon aufgefallen, dass ab dem 69er dann die Toolbar-Menu-Buttons folgendes im XUL benötigen: is="toolbar-menu-button", was aber auch im 68er schon drin stehen darf ohne Probleme zu machen.

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

    • Thunder
    • 13. August 2019 um 01:13
    Zitat von jobisoft

    fur XUL elemente document.createXULElement benutzen.

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

  • Extracting embedded attachments

    • Thunder
    • 12. August 2019 um 23:47

    The requested feature is existing. Have a look in the advanced options - there you can enable the feature.

    I am currently updating the add-on for the upcoming Thunderbird 68. The work on this is going very well, so I hope to be able to release this Update short after Thunderbird 68.

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

    • Thunder
    • 12. August 2019 um 23:39

    Ein paar weitere Anmerkungen/Fragen:

    1.) Das bisherige Hauptproblem mit der defekten "createStartupUrl"-Funktion und deren Folgen könnte man igonieren (und den zugehörigen wohl aus C++ portierten JS-Code löschen), wenn ich zumindest die Abfrage der Attachmentgrößen auch in die Standard-Routinen integrieren könnte, mit denen eigentlich alles andere im Add-on gemacht wird.

    2.) Ich bräuchte leider auch gleich ein bisschen Information zu document.createElement ab Thunderbird 69 Beta. Ansonsten brauche ich erst gar nicht anzufangen, die menuitem für die neu integrierten Favoritenordner zu programmieren. An den ab 69 Beta defekten "Zuletzt verwendeten Ordnern" sehe ich schon, dass da auch wieder Arbeit auf mich zukommt.

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

    • Thunder
    • 10. August 2019 um 19:02

    In der Zwischenzeit habe ich einen neuen Snapshot-Tag in GitLab erstellt, auf dessen Basis wir weiter machen können:

    https://gitlab.com/ThunderbirdMai…/2.0a1-20190810

    In diesem Snapshot funktioniert nun fast alles. Aber die Funktion "createStartupUrl" versagt weiterhin. Daher funktioniert das Add-on noch nicht, wenn man in dessen Einstellungen → Erweitert → "Anhänge mit interner Routine ... abtrennen" auswählt. Dies wäre notwendig, wenn man für die abzutrennenden Anhänge das Eingangsdatum der Mail nutzen will und/oder die Dateigröße der Anhänge für das Abtrennen berücksichtigt werden soll.

    Die alte, originale Funktion (auskommentiert):

    https://gitlab.com/ThunderbirdMai…ssenger.js#L539

    Die momentane (ebenfalls nicht funktionierende) Funktion:

    https://gitlab.com/ThunderbirdMai…ssenger.js#L566

    Genutzt wird die Funktion eigentlich nur einmal im kompletten Add-on von dieser Stelle aus:

    https://gitlab.com/ThunderbirdMai…ssenger.js#L433


    Danke für weitere Hilfe und Ideen von Dir/Euch!

  • Add-ons von "Thunder" als Vorabversionen für Thunderbirds Entwickler-Versionen ab 65.0a1

    • Thunder
    • 9. August 2019 um 17:03

    Da meine eigenen Add-ons für Thunderbird 68 fertig / lauffähig sind, schließe ich dieses übergreifende Thema jetzt.

    Alles Weitere zum AttachmentExtractor schreibe ich direkt in dem passenden Unter-Forum.

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

    • Thunder
    • 7. August 2019 um 00:13
    Zitat von jobisoft

    Ok, wenn das Ding wirklich nur ein String ist, dann mach die URL Manipulation mal als reine String-Manipulation und ersetzte Zeile 453-456 durch:

    messageUri = messageUri + "?header=saveas";


    Was passiert?

    Dann kommt folgende Fehlermeldung (wobei die Zeilennummer 764 evtl. nicht zum bisherigen Code passt, da ich alle möglichen Zeilen/Versuche momentan im Code drin habe:

    Zitat

    Could not convert JavaScript argument - 0 was passed, expected object. Did you mean null? arg 0 [nsIScriptableInputStream.init]" nsresult: "0x80570035 (NS_ERROR_XPC_BAD_CONVERT_JS_ZERO_ISNOT_NULL)" location: "JS frame :: chrome://attachmentextractor_cont/content/aec_js_messenger.js :: aeSaveMsgListener/this.onDataAvailable :: line 764"


    Zitat von jobisoft

    createStartupUrl: function(url) {
    return Services.io.newURI(url);
    }

    geht nicht - bringt weitere Fehler


    Momentan habe ich entdeckt, dass ich zumindest für das Unterlassen der Rückfrage, ob Attachments gelöscht werden sollen, doch auch Thunderbirds eigene Routinen verwenden kann. Das hilft schon mal an wichtiger Stelle weiter. Außerdem konnte ich scheinbar das verdammte "eval()" an anderer Code-Stelle tatsächlich erfolgreich ersetzen.

    In den nächsten Tagen erstelle ich nochmal einen Snapshot bzw. ein aktuelles Tag in GitLab, auf das man sich dann mit den Zeilennummern wieder korrekt beziehen kann und melde mich dann wieder.

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

    • Thunder
    • 4. August 2019 um 00:10
    Zitat von jobisoft

    Bist du Dir sicher, dass messageUri wirklich eine Uri ist?

    Ich vermute, der ursprüngliche Autor hat "URL" als Teilmenge von "URI" angenommen. Somit wäre jede URL letztlich auch eine URI, obwohl die URL ja mehr Information (Protokoll und Pfad) bietet als eine einfache URI.

    Zitat von jobisoft

    das gibt einen String zurück, oder? Kannst du das mal dumpen?

    https://searchfox.org/comm-central/s…gFolder.idl#409

    Das liefert beispielsweise folgendes:

    mailbox-message://nobody@Local%20Folders/Test-Ordner#19

    Zitat von jobisoft

    Was passiert denn, wenn du Zeile 453-456 einfach auskommentierst?

    Im Falle des zu speichernden Nachrichtentexts (also Zeile 453-456) wird dann eine leere Datei ohne den Nachrichtentext erstellt. Wenn ich das mutate() weiter unten (Zeile 455) auskommentiere, wird bemängelt, dass die Datei (das Attachment) nicht gefunden werden konnte und es wird somit auch nicht gespeichert.

    Allerdings muss man sagen, dass das mutate() so wie von mir verwendet sowieso überhaupt nicht funktioniert hat.

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

    • Thunder
    • 2. August 2019 um 11:40

    Nein, das mit der Uri funktioniert so nicht. Kann es meines Erachtens auch nicht, da ich (meinem Verständnis nach) ja einer Art object eine property (die ".spec") zuweise bzw. diese überschreiben möchte. Deine Variante hätte das komplette object überschrieben. Da ich leider nur Learning-by-Doing-Ahnung habe, kann ich mich nicht korrekt ausdrücken, was es Dir vermutlich leichter machen würde :/ .

    Bezüglich CID:

    https://gitlab.com/ThunderbirdMai…ssenger.js#L537

    Bezüglich Mutator:

    Hier: https://gitlab.com/ThunderbirdMai…ssenger.js#L455

    Und hier: https://gitlab.com/ThunderbirdMai…ssenger.js#L555

    Vielleicht hilft Dir wegen des Mutators auch die Info von Jörg etwas weiter:

    http://lists.thunderbird.net/pipermail/mail…rch/001050.html

    Vielen Dank

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

    • Thunder
    • 2. August 2019 um 09:53

    Das Problem mit der CID ist, dass es die alte CID scheinbar nicht mehr gibt. Ich muss aber irgendwie auf die (vermutliche) neue "Komponente" zugreifen, die nun aber keine klassische CID anbietet, sondern so aussieht:

    Code
    #define NS_IMAPURL_CID        \
    { 0x21a89611, 0xdc0d, 0x11d2, \
    { 0x80, 0x6c, 0x0, 0x60, 0x8, 0x12, 0x8c, 0x4e }}
  • Hilfreichste Antworten

Aktuelle Programmversion

  • Thunderbird 141.0 veröffentlicht

    Thunder 23. Juli 2025 um 06:15

Aktuelle 140 ESR-Version

  • Thunderbird 140.1.0 ESR veröffentlicht

    Thunder 22. Juli 2025 um 19:50

Aktuelle 128 ESR-Version

  • Thunderbird 128.13.0 ESR veröffentlicht

    Thunder 23. Juli 2025 um 08:10

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™