URLs werden aus von Thunderbird generierten Antworten entfernt

Hmmm, in diesem Beispiel und in der vollständigen E-Mail-Quelle, die du mir gesendet hast (danke!), sollte das Attribut moz-do-not-send die Anzeige der \u003cimg\u003e- oder \u003ca\u003e-Tags, in denen dieses Attribut vorkommt, nicht beeinflussen. Der Mozfilter prüft nur Werte im class-Attribut, und ich kann im Moment nirgendwo sonst erkennen, wo er sonst noch gefiltert werden könnte.

Daher kann ich nicht herausfinden, warum der Inhalt und der href des Links mit Alias getrennt werden, es sei denn, der Discourse-Importer entscheidet sich plötzlich dafür, den plain/text-Teil der MIME-codierten E-Mail zu verwenden (der tatsächlich Text und URL getrennt enthält). Warum er das tun würde, weiß ich nicht.

Kannst du in deinem Test-Discourse-Setup versuchen, eine Thunderbird-HTML-E-Mail mit einem Link mit Alias und beispielsweise einem eingebetteten Bild oder etwas anderem zu importieren/versenden, das es als HTML-Teil der E-Mail kennzeichnet?

Danke für den Versuch.

Dann befindet sich das Bild, das in der E-Mail zwischen dem Text (links) steht, in Discourse am Ende (rechts):

Ich denke immer noch, dass dies möglicherweise Discourse ist, das die anderen MIME-Teile verwendet (in diesem Fall ein plain/text-Teil, gefolgt von einem image/…-Teil der E-Mail, um seine Markdown-Version zu erstellen, obwohl ich nicht weiß, warum. Vielleicht lehnt ein HTML-Validator den text/html-Teil wegen streng nicht-validierender Attribute wie moz-do-not-send ab!?

Könntest du noch einen Test mit demselben Beitrag durchführen (einige Text mit einem Bild in der Mitte, aber mache auch einige – aber nicht alle – Textstellen fett, sogar nur ein einziges Wort. Ich denke, das wird entscheiden, ob der Textteil aus einem text/plain- oder text/html-Block stammt.

Und sorry, dass ich das frage, aber nur zur Sicherheit: Ist incoming_email_prefer_html auf true gesetzt (angehakt)?!

Die E-Mail:

Der Beitrag:

Danke, @Flominator. Ich sehe, dass der fette Text jetzt kursiv ist, also wird das HTML definitiv nicht direkt verwendet, aber die Betonung wird irgendwie erkannt. Ich frage mich, ob dem text/plain-Teil der E-Mail irgendeine Art von Markup hinzugefügt wird. Könntest du mir wie beim letzten Mal den E-Mail-Quelltext per PN schicken?

Hallo @Flominator, danke für die Roh-E-Mail. Beim Ansehen des text/plain-Alternativteils der E-Mail werden tatsächlich Sternchen um den Text gesetzt, der im text/html-Teil fett gedruckt ist. Die meisten Markdown-Renderer (wie der in Discourse) interpretieren dies als kursiv. Hier ist der text/plain-Abschnitt, einzeln kopiert und eingefügt:

Und nochmal soll ich für hier
https://meta.discourse.org/t/urls-being-dropped-from-thunderbird-generated-replies/163751/24
eine Testnachricht schicken.

Bild in die Mitte dann wieder Text von dem ein Teil sogar fett
geschrieben
ist

Gruß

Flo

Das sieht exakt so aus wie dein Screenshot.

Meiner Einschätzung nach wird das text/html-Segment als ungültiges HTML abgelehnt (wahrscheinlich aufgrund des nicht standardkonformen Attributnamens moz-do-not-send in den a-Tags). Dafür wäre ein Patch erforderlich, der die Prüfung auf gültiges HTML ändert (möglicherweise durch einfaches Entfernen dieser Attribute). Ich bin weniger sicher, wie stabil das sein wird, ohne dass dies in den Kerncode integriert wird. Ich werde mir das ansehen, sobald ich etwas Zeit habe.

Hallo zusammen, die diesem Thema folgen,

Ich habe gerade (vor dem Update) festgestellt, dass ein separater Fix (in die gleiche Richtung, aber spezifischer) für dieses Problem committet wurde:
issue: FIX: properly clean Thunderbird emails, don't remove links by ValdikSS · Pull Request #16543 · discourse/discourse · GitHub
commit: FIX: properly clean Thunderbird emails, don't remove links (#16543) · discourse/discourse@f7540aa · GitHub

Dies bedeutet, dass der in einem obigen Kommentar angehängte Patch fehlschlägt (wahrscheinlich nicht “spektakulär”, aber er könnte dann einen Rebuild erfordern, um Upgrades wieder zum Laufen zu bringen), wenn Sie auf diesen neuen Commit aktualisieren (wahrscheinlich Ihr nächstes Upgrade).
Wenn Sie ihn automatisch anwenden lassen (z. B. mit einem git apply cmd in Ihrer app.yml, wie oben beschrieben), sollten Sie ihn vor Ihrem nächsten Upgrade entfernen. Tatsächlich könnte ein Rebuild angebracht sein, da dieser Commit möglicherweise nicht angewendet werden kann, da die Stelle in receiver.rb, an der der Commit-Diff angewendet werden soll, durch den Patch bereits geändert wurde.

Ich werde 1) den git apply cmd aus app.yml entfernen, 2) die App neu erstellen, 3) aktualisieren (falls dies nicht bereits beim Rebuild geschehen ist). Ich werde Sie auf dem Laufenden halten, wie das läuft…

[10 Minuten später…]

Am Ende habe ich stattdessen Folgendes getan, da es während des Rebuilds keine Ausfallzeiten erfordert.

  1. Entfernen Sie den git apply für den Patch aus app.yml (muss nur vor Ihrem nächsten App-Container-Rebuild erfolgen)
  2. Setzen Sie die gepatchte Datei zurück mit:
    i) launcher enter app
    ii) (jetzt im App-Container)
    cd /var/www/discourse
    git checkout ./lib/email/receiver.rb
    exit
  1. Aktualisieren Sie Discourse über das Web-Admin-Update

Ich bin der Autor dieses Patches. Er funktioniert bei mir hervorragend und ich habe keine Nachteile gefunden.