Übergabe von E-Mails als PDF mit eingebetteten Anlagen
This commit is contained in:
66
README.md
66
README.md
@@ -14,7 +14,7 @@ WebExtensions, LibreOffice UNO.
|
||||
| Ort | Befehl | Wirkung |
|
||||
|---|---|---|
|
||||
| Kontextmenü am Anhang | Anhang in Paperless ablegen | ausgewählte Anhänge als Dokument |
|
||||
| Kontextmenü in der Nachrichtenliste | E-Mail in Paperless ablegen | vollständige Nachricht als `.eml` |
|
||||
| Kontextmenü in der Nachrichtenliste | E-Mail in Paperless ablegen | als PDF mit eingebettetem Original, wahlweise als `.eml` |
|
||||
| Schaltfläche im Nachrichtenfenster | dasselbe für die angezeigte Nachricht | |
|
||||
| Schaltfläche im Verfassenfenster | Aus Paperless einfügen | als Anhang oder als Freigabelink |
|
||||
|
||||
@@ -35,9 +35,18 @@ abgewählt — sie gehören zur Darstellung der Nachricht, nicht zum Inhalt.
|
||||
Wer sie alle mit archiviert, hat nach einem Jahr hunderte Logos im Bestand.
|
||||
Die Schwelle liegt bei 8 KB und ist einstellbar.
|
||||
|
||||
**Die ganze Nachricht als `.eml`.** Anhänge bleiben darin enthalten;
|
||||
Paperless legt sie nicht als eigene Dokumente an, aber die Datei ist
|
||||
vollständig und lässt sich jederzeit wieder in einem Mailprogramm öffnen.
|
||||
**Die ganze Nachricht als PDF.** Betreff als Überschrift, darunter ein
|
||||
grau hinterlegter Kopfblock mit Konto, Absender, Empfängern, Datum und
|
||||
Anlagen, dann der Nachrichtentext. Zitierte Abschnitte stehen grau und
|
||||
eingerückt — bei langen Verläufen sieht man so auf einen Blick, was neu
|
||||
ist.
|
||||
|
||||
Eingebettet werden die vollständige Originalnachricht als `.eml` sowie
|
||||
alle Anhänge im Original. Es geht also nichts verloren, auch wenn die
|
||||
Darstellung nicht originalgetreu ist.
|
||||
|
||||
Wer lieber die Rohfassung will, stellt das in den Einstellungen um oder
|
||||
nimmt das Häkchen im Ablegen-Dialog heraus.
|
||||
|
||||
**Titel aus dem Betreff.** Präfixe wie `AW:` oder `Fwd:` werden entfernt —
|
||||
sie tragen im Archiv nichts bei und stören beim Sortieren.
|
||||
@@ -45,6 +54,52 @@ sie tragen im Archiv nichts bei und stören beim Sortieren.
|
||||
**Klassifizierung direkt danach.** Sonst trägt ein neues Dokument nur den
|
||||
Titel, und nachträglich macht man es erfahrungsgemäß nicht mehr.
|
||||
|
||||
### Warum kein originalgetreues Abbild
|
||||
|
||||
HTML-Nachrichten werden als Text gesetzt. Eine WebExtension hat keine
|
||||
Darstellungsmaschine, die HTML nach PDF überträgt, und **Thunderbird
|
||||
bietet Erweiterungen keine Druckfunktion an** — die tabs-Schnittstelle
|
||||
kennt in Manifest V3 kein `saveAsPDF`, anders als in Firefox. Geprüft an
|
||||
der API-Dokumentation für Thunderbird 156.
|
||||
|
||||
Für die Umwandlung von HTML nach Text übernimmt
|
||||
`messengerUtilities.convertToPlainText()` die Arbeit. Das ist dieselbe
|
||||
Funktion, die beim Antworten in Nur-Text greift, und liefert deutlich
|
||||
bessere Ergebnisse als eine selbstgebaute Entschlackung.
|
||||
|
||||
### Der PDF-Erzeuger
|
||||
|
||||
Selbst geschrieben, in `lib/pdf.js`. Der Grund ist Vorsatz: Eine
|
||||
Erweiterung soll nichts nachladen, und eine mitgelieferte Bibliothek wie
|
||||
`pdf-lib` wäre rund ein Megabyte für einen Bruchteil ihrer Fähigkeiten.
|
||||
Gebraucht werden hier nur Text und eingebettete Dateien.
|
||||
|
||||
Erzeugt wird PDF 1.7 mit den eingebauten Schriften Helvetica und
|
||||
Helvetica-Bold. Die sind in jedem Betrachter vorhanden und müssen nicht
|
||||
eingebettet werden.
|
||||
|
||||
**Ausdrücklich kein PDF/A.** Dafür wären eingebettete Schriftschnitte, ein
|
||||
Farbprofil und XMP-Metadaten nötig — und vor allem eine Prüfung mit
|
||||
veraPDF. Ein Dokument als PDF/A zu bezeichnen, ohne es geprüft zu haben,
|
||||
wäre eine leere Behauptung.
|
||||
|
||||
Einstellbar sind Papierformat (A4, A5, Letter, Legal), die vier Ränder in
|
||||
Millimetern und die Grundschriftgröße (Vorgabe 11 Punkt).
|
||||
|
||||
### Das Konto im Kopfblock
|
||||
|
||||
Bei Nachrichten an Blindkopie-Empfänger geht aus An und Kopie nicht
|
||||
hervor, welches Konto sie empfangen hat. Im Archiv ist das später die
|
||||
entscheidende Angabe.
|
||||
|
||||
Ermittelt wird sie auf zwei Wegen: über die accounts-Schnittstelle, die
|
||||
allerdings die Berechtigung `accountsRead` braucht, und ersatzweise über
|
||||
die Zustellkopfzeilen `Delivered-To`, `X-Original-To` und Verwandte.
|
||||
|
||||
Letztere setzt der zustellende Server, und sie sind nicht immer vorhanden
|
||||
— Postfix und Dovecot setzen sie zuverlässig, Microsoft-Umgebungen oft
|
||||
nicht. Findet sich nichts, fehlt die Zeile im PDF ganz.
|
||||
|
||||
---
|
||||
|
||||
## Einfügen in Entwürfe
|
||||
@@ -233,3 +288,6 @@ schließt jede Gewährleistung aus.
|
||||
|
||||
Vor dem ersten produktiven Einsatz: eine Testnachricht ablegen und in
|
||||
Paperless nachsehen, ob Titel, Datum und Anhänge stimmen.
|
||||
|
||||
Es wird weder eine Gewähr noch eine Haftung übernommen. Für entstandene
|
||||
Schäden haftet der jeweilige Anwender. Die Nutzun erfolgt auf eigenes Risiko.
|
||||
|
||||
Reference in New Issue
Block a user