EML-Viewer und MIME-E-Mail-Decoder

Fügen Sie eine Nachricht ein oder öffnen Sie eine .eml-Datei und drücken Sie Lokal prüfen: Header, Textkörper, isolierte HTML-Vorschau und jeder MIME-Teil — mit Speichern für die dekodierten Bytes — bleiben auf der Seite, nichts wird hochgeladen.

Lokale Verarbeitung ·
*.eml

Wie man eine .eml-Nachricht liest, ohne sie hochzuladen

Fügen Sie den Quelltext einer Nachricht in das Feld ein oder öffnen Sie eine .eml-Datei von der Festplatte und drücken Sie Lokal prüfen. Das ganze Lesen geschieht im Tab: Es wird nichts hochgeladen, und die Seite lädt währenddessen nichts nach. Das Ergebnis teilt sich in die dekodierten Header, den Textkörper, eine isolierte HTML-Vorschau und die Liste der MIME-Teile, sodass eine Nachricht aus Text, HTML und Anhängen Stück für Stück gelesen werden kann.

Header und Körper werden mit dem Zeichensatz dekodiert, den der jeweilige Teil angibt: Ein Betreff der Form =?windows-1252?Q?Rechnung_=80_offen?= erscheint als „Rechnung € offen“, ein GB2312-Körper als 后台任务已完成。, und UTF-8 behält seine Akzente. Teile werden Zeile für Zeile an der MIME-Grenze geschnitten, statt den Grenztext irgendwo im Körper zu suchen, sodass eine Zeile aus Bindestrichen in zitiertem Text die Nachricht nicht mehr vorzeitig beendet.

  1. Fügen Sie den Nachrichtenquelltext in das Feld ein oder legen Sie eine .eml-Datei auf der Ablagefläche ab; der Dateiname erscheint neben der Fläche und der Text wird in das Feld geladen.
  2. Drücken Sie Lokal prüfen. Die Kennzahlen zählen Header, Teile, Anhänge und Eingabegröße, und die Metadatenkarte zeigt Von, An, Betreff, Datum und Nachrichten-ID — ein fehlendes Feld erscheint als Gedankenstrich.
  3. Lesen Sie den Textkörper: Kopieren legt ihn in die Zwischenablage, Herunterladen speichert ihn. Eine gewählte Datei benennt den Download nach sich (win1252-body.txt für win1252.eml); eine eingefügte Nachricht wird als message-body.txt gespeichert.
  4. Prüfen Sie die HTML-Vorschau: Sie wird in einem isolierten Rahmen mit deaktivierten externen Ressourcen gezeichnet, sodass ein im HTML eingebautes Zählpixel gar nicht erst abgerufen wird.
  5. Öffnen Sie die Anhangsliste: Jeder Teil zeigt Name, MIME-Typ, dekodierte Größe und Übertragungskodierung, und Speichern schreibt die dekodierten Bytes unter dem ursprünglichen Dateinamen auf die Festplatte.

Was der Decoder liest und wo er endet

Was der Decoder liest

Der Zeichensatz stammt aus dem Content-Type-Header des jeweiligen Teils, nicht von der Seite: windows-1252 („Betrag: €12,50 – fällig am Montag.“), GB2312/GBK (后台任务已完成。), UTF-8 und eine unbekannte Angabe, die auf eine tolerante Byte-Lesung zurückfällt, erscheinen als lesbarer Text. Kodierte Wörter in Headern (RFC 2047) werden dekodiert, und das Leerzeichen zwischen zwei benachbarten kodierten Wörtern entfällt wie von der Norm verlangt, sodass „Deploy finished“ nicht doppelt getrennt wird.

Die Struktur wird Zeile für Zeile verfolgt: Ein Multipart-Teil wird nur dort getrennt, wo eine Zeile exakt --Grenze lautet (Leerzeichen am Ende erlaubt), sodass eine zitierte Antwort mit ----b1---- ihren Text behält. Ein Multipart-Header ohne boundary-Parameter, ein boundary="" ohne Wert und eine Grenze in einfachen Anführungszeichen verlieren den Körper nicht mehr — er wird als Text gezeigt. Eine als message/rfc822 weitergeleitete Nachricht wird als Nachricht geparst, ihr Körper erscheint im Textbereich und der Umschlag wird in der Anhangstabelle gelistet; eine tiefer als zwölf Ebenen verschachtelte Nachricht wird zu Text abgeflacht, statt zu verschwinden.

Die HTML-Vorschau

Die Vorschau behält das eigene Markup der Nachricht und ihre <style>-Regeln, entfernt aber alles, was etwas laden oder ausführen könnte: script, iframe, object, embed, link, meta, base, form und Formularelemente werden gelöscht, on*-Attribute verworfen und jedes URL-Attribut (src, href, poster, background und die übrigen) zeigt auf ein inertes Fragment, sofern es keine data:-URL ist. srcset behält nur seine eingebetteten Kandidaten. Das bedeutet hier „externe Ressourcen sind deaktiviert“: Bei 25 verschiedenen Tracking-Kniffen — ein einfaches Pixel, ein srcset, @import und url() in einem Style-Block, ein Inline-Stil — hat die korrigierte Vorschau keine Anfrage an den Tracking-Server gestellt, die Version davor vier.

Das ist ein Filter zum Lesen von Post, kein Virenscanner. Er führt keine Skripte aus, lädt keine entfernten Inhalte und kann nicht sagen, ob ein Link in der Nachricht sicher zu öffnen ist.

Wo der Leser endet

Der Viewer dekodiert die Nachricht so, wie sie geschrieben wurde; er prüft keine S/MIME- oder PGP-Signaturen, entschlüsselt keine geschützten Nachrichten und repariert keine Datei, die keine Nachricht ist. Textteile werden in der Reihenfolge ihres Auftretens verbunden, eine Nachricht mit mehreren text/plain-Teilen zeigt sie also nacheinander. Anhänge werden als Bytes gespeichert statt geöffnet, und einen JSON-Export gibt es nicht: Header, Körper, Vorschau und Teileliste sind das, was die Seite erzeugt.

Zuletzt verwendet: