Office und E-Mail
Macht Word-, Excel-, PowerPoint- und OpenDocument-Dateien, RTF, Textdateien und E-Mails (.eml, .msg) im Volltext durchsuchbar. Makros und eingebettete Objekte führt es nie aus. Abgeschottet im Paket-Läufer, ohne Netz.
Version 1.1.1 · von Thomas Meissner
Was mitkommt
legt nichts in der Ablage an
Dieses Paket legt nichts in deiner Ablage an – keine Mappentypen, keine Ansichten, keine Beispielmappen. Es bringt nur eine Funktion mit (siehe „Was das Paket darf“).
Was das Paket darf
kein Zugriff auf Netzwerk und Internet
- Mappen lesen: alle Mappentypen ?
- Dokumente lesen ?
- Volltext für Dateien liefern, die Ablago nicht selbst lesen kann – das Paket liest die Datei und schreibt nur ihren Volltext; Dokumente ändern, ersetzen oder löschen kann es nicht (dms:volltext): Word, Excel, PowerPoint, OpenDocument-Text, OpenDocument-Tabelle, OpenDocument-Präsentation, E-Mail, Outlook-E-Mail, RTF, Text, application/octet-stream ?
- kein Zugriff auf Netzwerk und Internet ?
- Reagiert auf diese Ereignisse: ?
- Eine Datei braucht ihren Volltext (Dateitypen, die Ablago nicht selbst liest) ?
Beschreibung
ausführlich
Ablago liest selbst nur PDF, JPEG und PNG. Mit dem Paket Office und E-Mail werden auch Word-, Excel- und PowerPoint-Dateien, OpenDocument (LibreOffice), RTF, Textdateien und E-Mails (.eml, Outlook .msg) im Volltext durchsuchbar: Das Paket liest den Text aus der Datei und gibt ihn Ablago. Die Datei selbst bleibt unverändert.
Es läuft im Paket-Läufer von Ablago: abgeschottet, ohne Netz, mit Grenzen für Speicher und Zeit. Makros und eingebettete Objekte führt es nie aus – es liest nur den Text.
Ein Vorschaubild und eine Ansicht als PDF bringt das Paket (noch) nicht mit; das ist ein eigener Schritt mit einem Zusatzdienst (#72).
So arbeitet es
- Eine Datei eines der Typen unten kommt in Ablago (Hochladen, Eingangsordner, Postfach, API) oder bekommt eine neue Version. Ablago gibt sie dem Paket (Ereignis Datei braucht Volltext); am Dokument steht so lange „Volltext: wartet auf Paket · wartet auf Volltext (Paket Office und E-Mail)“. Dasselbe geschieht beim Installieren für alle vorhandenen Dateien ohne Text und bei Volltext neu erzeugen in der Werkbank.
- Passt der Dateityp oder die Endung (siehe unten), holt das Paket die Datei, erkennt den Typ am Inhalt (nicht am Namen) und löst den Text heraus.
- Es schreibt den Text als Volltext des Dokuments. Am Dokument steht dann „Texterkennung durch Paket Office und E-Mail 1.1.0“ (so nennt Ablago jeden Volltext eines Pakets); die Suche findet das Dokument mit allen Wörtern daraus.
| Datei | Was in den Volltext kommt |
|---|---|
Word (.docx, .docm, .dotx) |
Text mit Absätzen, Tabellen, Textfeldern und Formeln; danach Fußnoten, Endnoten, Kommentare, Kopf- und Fußzeilen. Gelöschter Text aus der Änderungsverfolgung und Feldbefehle nicht. |
Excel (.xlsx, .xlsm, .xltx) |
je Tabellenblatt sein Name und die Zellen Zeile für Zeile: Texte, Zahlen, Ergebnisse von Formeln (nicht die Formeln) |
PowerPoint (.pptx, .pptm, .ppsx) |
Folien in ihrer Reihenfolge, mit Notizen |
OpenDocument (.odt, .ods, .odp) |
Text, Tabellen mit Blattnamen, Folien |
RTF (.rtf) |
Text (ohne Schriften, Farben, Bilder, Feldbefehle) |
Text (.txt) |
der Text (UTF-8, UTF-16 oder Windows-1252) |
E-Mail (.eml, auch aus einem mbox-Postfach) |
Von, An, Cc, Datum, Betreff, der Text der Nachricht (Klartext; nur HTML: ohne Tags, Skripte und Stile), die Namen der Anhänge – und der Text von Anhängen, die das Paket liest (Office, Text, weitergeleitete E-Mails; bis zur dritten Ebene) |
Outlook (.msg) |
wie bei .eml: Absender, Empfänger, Datum, Betreff, Text, Anhänge |
Kann das Paket eine Datei nicht lesen, steht der Grund am Dokument (und in der Übersicht des Pakets unter Werkbank → Pakete → Office und E-Mail → Paket-Läufer), z. B. „Volltext durch Paket Office und E-Mail: Word lässt sich nicht lesen: mit einem Passwort verschlüsselt“. Erneut versuchen am Dokument gibt die Datei noch einmal an das Paket.
Sicherheit
Office-Dateien und E-Mails können Makros, Skripte und eingebettete Programme enthalten. Das Paket liest davon nichts aus und führt nichts aus:
- Nur Text: Aus Office-Dateien liest es nur die XML-Teile mit dem Text.
vbaProject.bin(Makros in Word, Excel, PowerPoint),Basic/undScripts/(Makros in LibreOffice) und eingebettete Objekte (embeddings/, OLE-Objekte) öffnet es nicht. Enthält eine Datei Makros, steht in der Übersicht „enthält Makros, nicht ausgeführt“. - XML ohne Nachladen: Eine DOCTYPE-Angabe überspringt es; eigene Entitäten und externe Verweise (XXE) gelten nicht.
- E-Mails: HTML wird zu Text – Skripte, Stile, Bilder und Links werden nicht geladen oder ausgeführt. Verschlüsselte Teile (S/MIME, PGP/MIME) bleiben verschlüsselt.
- ZIP-Bomben: Jeder Teil darf entpackt höchstens 96 MB groß und höchstens 1000-mal so groß wie gepackt sein; mehr liest das Paket nicht.
- Kein Netz, kein Dateisystem: Der Paket-Läufer gibt dem Modul nur die API von Ablago.
Rechte und Netzwerkzugriff
Bei der Installation zeigt Ablago diese Rechte und lässt sie dich bestätigen:
- Mappen lesen: alle Mappentypen – Dokumente liegen in Mappen beliebiger Typen; die Mappen selbst liest das Paket nicht.
- Dokumente lesen – es liest die Datei.
- Volltext liefern (
dms:volltext) für Word, Excel, PowerPoint, OpenDocument, E-Mail, RTF, Text und Dateien ohne bekannten Typ – es schreibt nur den Volltext dieser Dateien. Dokumente ändern, ersetzen oder löschen kann es damit nicht. - Kein Netz. Alles geschieht im Paket.
- Es reagiert auf Datei braucht Volltext (
datei.volltext).
Dateien ohne bekannten Typ (application/octet-stream, etwa eine .msg-Datei aus manchen Browsern) holt das Paket nur, wenn die Endung passt; sonst steht am Dokument „Weder Office-Dokument noch E-Mail oder Text … – nichts zu tun“.
Einstellungen hat das Paket keine.
Grenzen
- Länge: höchstens 5 Millionen Zeichen je Datei (so viel nimmt Ablago als Volltext); längere Texte kürzt das Paket („gekürzt“ in der Übersicht).
- Größe: Dateien über 50 MB holt das Paket nicht.
- Alte Formate: Word 97–2003 (
.doc), Excel 97–2003 (.xls) und PowerPoint 97–2003 (.ppt) liest das Paket nicht. In einer E-Mail nennt es solche Anhänge nur mit Namen. Tipp: in Word, Excel oder LibreOffice öffnen und als.docx,.xlsxoder.pptxspeichern. - Verschlüsselte Dateien (Passwort beim Öffnen) liest es nicht.
- Zeichensätze in E-Mails: UTF-8, UTF-16, ISO-8859-1, ISO-8859-15 und Windows-1252. Andere (z. B. für Kyrillisch oder Japanisch) kommen nur lesbar an, wenn sie gültiges UTF-8 sind.
- PDF-Anhänge einer E-Mail liest das Paket nicht – lege sie als eigenes Dokument ab, dann liest Ablago sie selbst.
Messung
Gemessen am 02.11.2026 (Text: 03.11.2026) auf amd64 mit 2 Kernen (nebenher belastet), Node 22, nur das Herauslösen im Modul (node tests/modul_test.mjs <ordner> --messen):
| Datei | Größe | Text | Zeit | Speicher |
|---|---|---|---|---|
| Word, 30.000 Absätze (erfunden, 1.0.0) | 94 KB | 1,8 Mio. Zeichen (damals gekürzt) | 0,09 s | 15 MB |
| Excel, 100.000 Zeilen × 4 Spalten (erfunden, 1.0.0) | 1,4 MB | 1,8 Mio. Zeichen (damals gekürzt) | 0,13 s | 23 MB |
| Text, 150.000 Zeilen (erfunden, 1.1.0) | 5,9 MB | 4,9 Mio. Zeichen (gekürzt) | 0,3 s | 37 MB |
| PowerPoint-Vorlage aus LibreOffice, 13 Folien | 1,6 MB | 3.383 Zeichen | 0,01 s | 4 MB |
| E-Mail, 1,1 MB Text | 1,1 MB | 1,2 Mio. Zeichen | 0,05 s | 13 MB |
Das Modul ist 0,2 MB groß.
Voraussetzungen
- Ablago 0.145.0 oder neuer (Recht „Volltext liefern“, Ereignis „Datei braucht Volltext“, Volltext bis 5 Millionen Zeichen). Für ältere Ablago-Versionen gibt es Version 1.0.0 (mit Schreibrecht auf Dokumente, nur neue Dateien).
Für Entwickler
| Datei | Inhalt |
|---|---|
code/office_email.cpp |
das Modul (Ablago-Paket-ABI 1): Ereignis datei.volltext → Datei über die API → Text → PUT /dokumente/{id}/volltext |
code/erkennen.h |
Dateityp am Inhalt erkennen, an den passenden Leser geben |
code/office.h, code/zip.h, code/xml.h |
Office Open XML und OpenDocument: ZIP (mit zlib), XML, Text je Format |
code/mail.h, code/cfb.h |
E-Mails (MIME, RFC 2047/2231) und Outlook .msg (Compound File) |
code/rtf.h, code/zeichen.h |
RTF; Zeichensätze, Base64, Quoted-Printable, HTML zu Text |
code/bauen.sh |
Bau: zlib 1.3.1 aus der Quelle (fester Commit, Hash geprüft) |
tests/ |
beispiele.py (Testdateien nur mit der Python-Standardbibliothek, mit erwarteten Texten), modul_test.mjs (das Modul mit einer Nachbildung von Ablago), ci.sh (CI), pruefen.sh (alles lokal) |
WASI_SDK=$(werkzeuge/wasi-sdk.sh) python3 werkzeuge/bauen.py pakete/office_email
pakete/office_email/tests/pruefen.sh # bauen und alle Tests
Lizenz
Apache-2.0 (siehe LICENSE). Im Modul steckt zlib 1.3.1 (Lizenz Zlib, Text in code/lizenzen/zlib.txt); alle Leser für Office, E-Mail und RTF sind Teil dieses Pakets.
Änderungen
Version 1.1.1
1.1.1
- Texte: Das Programm heißt jetzt Ablago (dms-registry #111). Inhalt, Rechte und Verhalten sind unverändert.
1.1.0
- Eigenes Recht statt Schreibrecht (DMS #614): Das Paket nutzt das Recht „Volltext liefern“ (
dms:volltext) mit „Dokumente lesen“ – es darf nur noch den Volltext seiner Dateitypen schreiben, keine Dokumente hochladen oder ersetzen. Braucht DMS 0.145.0. - Alle passenden Dateien: Das DMS meldet sie jetzt mit dem Ereignis „Datei braucht Volltext“ (
datei.volltext) – beim Hochladen, bei neuen Versionen, beim Installieren für vorhandene Dateien ohne Text und bei Volltext neu erzeugen. Bis das Paket schreibt, steht am Dokument „wartet auf Volltext“; kann es eine Datei nicht lesen, steht der Grund am Dokument. - Länger: bis 5 Millionen Zeichen je Datei (bisher etwa 1,8 Millionen).
1.0.0
- Erste Fassung (dms-registry #30, Stufe 1): Volltext für Word, Excel und PowerPoint (
.docx,.xlsx,.pptx, auch mit Makros und Vorlagen), OpenDocument (.odt,.ods,.odp), RTF, Textdateien und E-Mails (.eml, Outlook.msg, mit dem Text lesbarer Anhänge) – über das Ereignis „Dokument hochgeladen“ undPUT /dokumente/{id}/volltext. - Makros und eingebettete Objekte werden nie gelesen oder ausgeführt; XML ohne DTD und Entitäten, Grenzen gegen ZIP-Bomben, kein Netz.
- Einzige fremde Bibliothek: zlib 1.3.1. Keine Einstellungen.
- Noch nicht: Vorschaubild und PDF-Ansicht (#72), Dateien von vor der Installation, neue Versionen (brauchen eine Änderung im DMS).
Für Fortgeschrittene und Entwickler
Version, Lizenz, Quellcode, Downloads
- Version
- 1.1.1 vom 03.11.2026
- Lizenz
- Apache-2.0
- Nötige Ablago-Version
- >=0.145.0
- Abhängigkeiten
- keine
- Quellcode
- auf GitHub ansehen
Alle Versionen
| Version | Datum | Ablago | Download | |
|---|---|---|---|---|
| 1.1.1 | 03.11.2026 | >=0.145.0 | Archiv | |
| 1.1.0 | 02.11.2026 | >=0.145.0 | Archiv | |
| 1.0.0 | 02.11.2026 | >=0.88.0 | Archiv |
Fehler oder Wunsch zu diesem Paket melden (auf GitHub; übertragen wird nur der Paketname)
Passt dazu
Ähnliche Pakete
Macht TIFF-Scans (auch mehrseitig), WebP, GIF und BMP in Ablago sichtbar – mit Vorschaubild. Für durchsuchbaren Text bei Scans zusätzlich das Paket „Texterkennung“ installieren. Das Original bleibt unverändert.PDF/A
Legt zu jedem Dokument zusätzlich ein durchsuchbares PDF/A ab – das Format für die Langzeitaufbewahrung, auch in vielen Jahren noch lesbar. Für Scans und Fotos braucht es das Paket „Texterkennung“. Das Original bleibt unverändert, ohne Netz.Texterkennung (Deutsch und Englisch)
Das Grundpaket für die Texterkennung von Ablago – macht gescannte PDFs und Fotos durchsuchbar, auf Deutsch und Englisch. Weitere Sprachen gibt es als Zusatzsprachen (z. B. Französisch, Spanisch, Türkisch). Erkennt die Sprache je Seite, richtet Seiten auf, ohne Netz.
Weitere Pakete von Thomas Meissner
Mappentypen Organisation, Niederlassung und Person – für Firmen, Behörden, Ärzte, Banken mit ihren Filialen und die Menschen, mit denen du zu tun hast.Fahrzeuge
Auto, Motorrad, Wohnmobil und Anhänger mit HU-Termin, Halter, Fahrzeugbrief, Versicherung und allen Werkstattrechnungen.Hallo Post
Beispiel für Pakete mit Code – zählt neue Post und meldet die Zahl auf Knopfdruck. Zum Ausprobieren und als Vorlage für eigene Pakete.