Home –> Programme (Download) –> mbx2eml [ English ]

 

mbx2eml  –  Programm zum Aufteilen von mbox-Dateien

Version 0.68                Freeware                 © Jürgen Lüthje 2003-2007


Inhalt

Beschreibung
Installation
Deinstallation
Benutzung
Eigenschaften
Namen der erzeugten E-Mail-Dateien
Einstellungen in der INI-Datei
Anmerkung zu FAT-Dateisystemen
Hintergrundinformation über das mbox-Format
Quellen
Dank
Lizenz


Beschreibung

mbx2eml ist ein 32-Bit-Programm für Windows 95/98/ME/NT/2000/XP/Vista/7, das Mailbox-Dateien im mbox-Format sowie Mailbox-Dateien von Foxmail in einzelne E-Mail-Dateien (incl. aller Anhänge) aufteilt, siehe auch Beispiele für E-Mail-Konvertierung.

Installation

Es ist keine Installation erforderlich, entpacken Sie einfach die Dateien im ZIP-Archiv in ein Verzeichnis auf Ihrer Festplatte oder z.B. auf Ihrem USB-Speicherstift. Ändern Sie bei Bedarf die Einstellungen in der INI-Datei.
mbx2eml schreibt weder Einträge in die Windows-Registry, noch nimmt es andere Änderungen am System vor.

Deinstallation

Löschen Sie einfach die Dateien.

Benutzung

mbox-Dateien haben typischereise die Erweiterung MBX (oder manchmal z.B. MBS oder gar keine Erweiterung). Das sind nur Konventionen. mbx2eml kann alle mbox-Dateien verarbeiten, es ist nicht nötig diese vorher umzubenennen. Die Mailbox-Dateien werden nicht verändert.

Aufruf:    mbx2eml <Dateispezifikation> <Ausgabeverzeichnis> [Optionen]

( Beispiel:  mbx2eml c:\daten\*.mbx c:\temp\ /p /n )

Verwenden Sie in der Dateispezifikation  *.*  für alle Dateien. Mit  *  oder  *.  erfassen Sie alle Dateien ohne Erweiterung (z.B. die mbox-Dateien von Mozilla Mail und Thunderbird).
mbx2eml teilt alle mbox-Dateien, die zu der angegebenen Spezifikation passen, in einzelne E-Mail-Dateien auf. Dabei wird normalerweise für jede Mailbox-Datei im Ausgabeverzeichnis ein gleichnamiges Unterverzeichnis erzeugt. Wenn das Ausgabeverzeichnis bereits existiert, sollte es leer sein. Andernfalls werden vorhandene gleichnamige E-Mail-Dateien überschrieben!

Optionen:
/p                Im Falle eines Fehlers fragt das Programm nicht den Benutzer, sondern schreibt
                  die Meldung in die Datei %TEMP%\mbx2eml.log und versucht fortzufahren.
/i                Das Programm startet als Icon in der Taskleiste.
/n                Als Namen der erzeugten E-Mail-Dateien werden laufende 8-stellige Nummern verwendet
                  (beginnend mit 00000001).
/d                Alle Mails werden ins Ausgabeverzeichnis entpackt (ohne Unterverzeichnisse).
/MinDate=...      Nur Mails mit dem angegebenen oder einem neueren Datum werden extrahiert.
/MaxDate=...      Nur Mails mit dem angegebenen oder einem älteren Datum werden extrahiert.
/Message-ID=...   Nur Mails mit der angegebenen Message-ID werden extrahiert.

Innerhalb einer Option darf kein Lerzeichen vorkommen. Die Optionen können beliebig kombiniert werden.

Das Datum muss im ISO-Format angegeben werden, d.h. in der Form {Jahr}-{Monat}-{Tag}. Es sieht also z.B. so aus:  /MinDate=2006-04-27.
Nur Datumsangaben im Bereich von 1980-01-01 bis 2100-12-31 sind erlaubt.

Die Message-ID muss ohne spitze Klammern angegeben werden, Groß-/Kleinschreibung spielt keine Rolle.
Wie bei den anderen Filtern werden auch hier alle Nachrichten extrahiert, die mit dem angegebenen Kriterium übereinstimmen. Allerdings ist eine Message-ID normalerweise einzigartig. Daher wird empfohlen, unmittelbar hinter eine zu suchende Message-ID ein Ausrufungszeichen zu schreiben. Mit diesem Zusatz wird das Programm beendet, sobald eine passende Nachricht gefunden und erfolgreich extrahiert wurde. Das kann viel Zeit sparen.

Wenn das Programm endet gibt es einen der folgenden Statuscodes an das Betriebssystem zurück. Z.B. können Batch-Programme diesen Wert mit Hilfe des ERRORLEVEL lesen (funktioniert unter Windows XP, aber aus irgendeinem Grund nicht unter Windows 98):
0   Programm erfolgreich ausgeführt.
1   Keine passende Datei gefunden.
2   Ein oder mehrere Fehler sind aufgetreten, oder der Benutzer hat das Programm vorzeitig beendet.
3   Ein schwerer Fehler ist aufgetreten, so dass das Programm abgebrochen werden musste.

Eigenschaften

Jede E-Mail-Datei erhält einen Zeitstempel entsprechend ihrem Date-Feld. Da dieser Zeitstempel für alle Mails in Koordinierter Weltzeit (UTC) ausgedrückt wird, lassen sich Nachrichten aus allen Teilen der Welt (z.B. auf einer Mailing-Liste) zeitlich sinnvoll sortieren. Wenn das Date-Feld einer Mail ungültige Angaben enthält, dann bekommt sie den Zeitstempel „01.01.1980 00:00:00“.

mbx2eml kann mbox-Dateien lesen die DOS/Windows-Zeilenumbrüche (Paare der ASCII-Zeichen 13 und 10) enthalten, UNIX  –  einschließlich Linux und FreeBSD  –  Zeilenumbrüche (ASCII 10) oder Macintosh-Zeilenumbrüche (ASCII 13), selbst wenn diese alle in der selben Datei miteinander vermischt sind. Die produzierten Mail-Dateien enthalten nur DOS/Windows-Zeilenumbrüche, und jede Datei endet mit einem Zeilenumbruch.
Wenn die letzte Zeile einer Nachricht nur einen Punkt enthält, wird sie nicht in die Mail-Datei kopiert. Der Grund ist, dass best. Programme Mail-Dateien mit solch einer Zeile nicht korrekt verarbeiten können.

mbx2eml sperrt die mbox-Dateien während es sie liest, so dass sie nicht gleichzeitig von anderen Programmen geändert werden können. Das Programm kann auch beschädigte Dateien lesen, die nicht nur Text enthalten. Beim Kopieren der Nachrichten wird jeder ASCII-Wert 26 (Zeichen für „Ende der Datei“) durch die Zeichenkette „<EOF>“ (= „End Of File“) ersetzt. Dadurch lassen sich selbst beschädigte Nachrichten nach dem Extrahieren mit jedem Editor öffnen.

Wenn mbx2eml sehr viele Mail-Dateien auf einen Datenträger mit einem FAT-Dateisystem kopiert, dann erzeugt es falls nötig automatisch zusätzliche Verzeichnisse. Deren Namen erhalten am Ende einen Unterstrich und eine laufende Nummer. Dies geschieht ebenso ohne wie mit Verwendung der Kommandozeilen-Option /d.

Mit dieser Sofware wurden z.B. mbox-Dateien mit einer Größe von ca. 200 MiB aufgeteilt, die über 40 000 Mails enthielten. Mbox-Dateien größer als 2 GiB können nicht verarbeitet werden.

Namen der erzeugten E-Mail-Dateien

Eine mbox enthält keine Dateinamen, daher muss das Programm diese selbst erzeugen.

Normalerweise wird jede Mail-Datei nach ihrem Betreff benannt. Dabei werden Sonderzeichen ersetzt, die in FAT32- und NTFS-Dateinamen unter Windows nicht erlaubt sind [1]:
    " wird durch ' ersetzt
    : wird durch . ersetzt
    /\?*<>| und ASCII-Zeichen < 32 werden jeweils durch ein Leerzeichen ersetzt


Überflüssige Leerzeichen sowie bestimmte Ausdrücke am Anfang eines Namens werden gelöscht. Lange Dateinamen werden gekürzt, so dass sie ein best. Maximum nicht überschreiten. Ein gekürzter Name ist durch “...” gekennzeichnet. Wenn eine Mail kein Subject-Feld hat, oder wenn dieses leer ist, wird „[no subject]“ als Dateiname verwendet. Die Namen der erzeugten Mail-Dateien können mit Hilfe der optionalen INI-Datei verändert werden.

Um einen eindeutigen Namen zu erhalten, wird '_' und eine 9-stellige hexadezimale Zahl  –  die Datum, Uhrzeit und Zeitzone der Mail repräsentiert  –  an den Dateinamen gehängt. Auf diese Weise erhält man fast immer einen Dateinamen, der nur auf Charakteristika der Mail selbst beruht.
Wenn ein Name dennoch mehrfach vorkommt, wird allen Namen außer dem ersten eine laufende Nummer in eckigen Klammern hinzugefügt, z.B.
    important_message_2F5B5B73A.eml
    important_message_2F5B5B73A[2].eml
    important_message_2F5B5B73A[3].eml

Die Kommandozeilen-Option /n bewirkt, dass laufende Nummern aus 8 Ziffern als Namen der erzeugten E-Mail-Dateien verwendet werden. Wenn Sie nicht eine Dateierweiterung aus mehr als 3 Zeichen wählen, dann erhalten Sie kurze 8.3-Namen, die auch unter DOS gültig sind.

Einstellungen in der INI-Datei

Mit Hilfe einer optionalen INI-Datei können bei Bedarf die Namen der erzeugten Mail-Dateien verändert werden. Die Datei muss sich im selben Verzeichnis wie das Programm mbx2eml befinden, und sie muss „mbx2eml.ini“ heißen.

Beispiel für eine Datei „mbx2eml.ini“:
-------------------------------------------
[MailFiles]
FileExtension = msg
PrefixesToRemove = Re:, Re^2:, Re^3:, Re^4:
ReplaceInFilename = "%_", " _", ",."
MaxFilenameLength = 50
-------------------------------------------


FileExtension (Voreinstellung: eml)
Hier können Sie eine beliebige Dateierweiterung angeben, sie wird für alle erzeugten Mail-Dateien verwendet. Mit der Angabe
    FileExtension =
erhalten die Mail-Dateien überhaupt keine Erweiterung.

Die folgenden Einstellungen sind wirkungslos, wenn die Kommandozeilen-Option /n benutzt wird:

PrefixesToRemove (Voreinstellung: Re:,Re[2]:,Re[3]:,Re[4]:,Fw:,Fwd:,Aw:)
Durch Komma getrennte Liste von Ausdrücken, die alle am Anfang der Dateinamen entfernt werden. Mit der Angabe
    PrefixesToRemove =
werden keine Ausdrücke am Anfang der Dateinamen entfernt.

ReplaceInFilename (Voreinstellung: leer)
Hier können Sie beliebig viele Zeichenpaare angeben. Diese müssen jeweils von Anführungszeichen umgeben und von Kommas getrennt sein. Das erste Zeichen eines Paares wird jeweils durch das zweite Zeichen ersetzt. Diese Option ist besonders nützlich für IFS, wo best. Zeichen verboten sind, die unter FAT32 und NTFS erlaubt sind. Deshalb wird in dem Beispiel das Zeichen '%' durch '_' ersetzt.

MaxFilenameLength (Voreinstellung: 60)
Gezählt werden alle Zeichen, einschließlich Punkt und Erweiterung (sofern vorhanden). Gültige Werte sind ganze Zahlen von 20 bis 120 (jeweils einschließlich). Steht hier ein ungültiger Wert, benutzt das Programm die Voreinstellung.

Um eine Option in der INI-Datei außer Kraft zu setzen, wandeln Sie diese einfach in einen Kommentar um, indem Sie an den Anfang der Zeile ein Semikolon schreiben. Wenn Sie nur mit den Voreinstellungen des Programms arbeiten möchten, können Sie die INI-Datei auch löschen.

Anmerkung zu FAT-Dateisystemen

Im Gegensatz zum NTFS-Dateisystem ist auf FAT-Dateisystemen (siehe „Arbeitsplatz“ > Rechtsklick auf das betr. Laufwerk > „Eigenschaften“) die Anzahl der möglichen Einträge pro Verzeichnis begrenzt. Das heißt, wenn Sie zu viele Dateien in ein Verzeichnis schreiben, dann ist dieses Verzeichnis irgendwann „voll“, auch wenn auf dem Datenträger noch ausreichend Platz vorhanden ist!

Dabei ist zu bedenken, dass lange Dateinamen (LFN) in einer Reihe verketteter Verzeichniseinträge gespeichert werden. Ein LFN belegt einen Eintrag für seinen kurzen 8.3-Namen, und einen weiteren, versteckten Eintrag für je 13 Zeichen des langen Namens (einschließlich Punkt und Erweiterung). Also belegt z.B. ein 120 Zeichen langer Dateiname 11 Verzeichniseinträge.
Eine Datei mit einem kurzen Namen belegt auf FAT32 unter Windows XP 1 Verzeichniseintrag, unter Windows 98 belegt sie jedoch lustigerweise 2 Einträge.

Anscheinend kann z.B. auf FAT32 ein Verzeichnis maximal 65 536 Einträge (inclusive “.” und “..”) enthalten. Sagen wir, wir haben eine mbox-Datei die ca. 20 000 Mails enthält, und nehmen wir zum einfachen Rechnen an, dass die Namen aller dieser Mails gleich lang sind. Wenn die ganze mbox-Datei in ein Verzeichnis entpackt werden soll, dürfen die Namen der Mails höchstens 26 Zeichen lang sein.

Hintergrundinformation über das mbox-Format [2,3,4]

Dies ist ein übliches Format für die Speicherung von E-Mails. Trotzdem gibt es dafür keine genaue Spezifikation. Eine 'mbox' ist eine Textdatei, die eine beliebige Anzahl von E-Mail-Nachrichten enthält. Jeder Nachricht geht ein 'Poststempel' voran, und die Nachrichten sind entsprechend RFC 2822 [5] formatiert. Das Dateiformat ist zeilenorientiert.
Der 'Poststempel' ist eine Zeile, die mit der Zeichenkette „From “ beginnt (mit Leerzeichen!), nicht gefolgt von einem Doppelpunkt. Wegen des weiten Bereichs an Variationen in der Praxis sollten keine weiteren Annahmen über die „From “-Zeile gemacht werden.

Diese Software interpretiert jedoch nicht jede solche „From “-Zeile als den Beginn einer neuen Nachricht, weil es sich manchmal um eine normale Zeile im Text der E-Mail handelt (z.B. „From now on ...“). Nur wenn die der „From “-Zeile unmittelbar folgenden Zeilen aussehen wie ein E-Mail-Header, wird diese als Trennmarke zwischen zwei Nachrichten angesehen. Dabei verhält sich das Programm robust und erkennt auch syntaktisch fehlerhafte Header, sofern sie nicht zu stark beschädigt sind.

Foxmail
Anstelle einer „From “-Zeile verwendet das Programm Foxmail eine Zeile aus den ASCII-Zeichen 16,16,16,16,16,16,16,17,17,17,17,17,17,83 um den Beginn einer neuen Mail zu kennzeichnen. mbx2eml erkennt diese Mailbox-Dateien automatisch und kann auch sie verarbeiten.

Eudora [6]
Das Eudora Mailbox-Format ist ähnlich wie das mbox-Format, aber entgegen einer weit verbreiteten Annahme ist es nicht mit diesem identisch. Es wird von mbx2eml nicht unterstützt. Leider benutzt Eudora auch die Dateierweiterung MBX.
Das Date Header-Feld wird in Eudora-Nachrichten oft weggelassen, vermutlich weil es in der vorangehenden „From “-Zeile enthalten ist. Dies stimmt nicht mit RFC 2822 [5] überein. Ebenfalls im Widerspruch zum mbox-Format extrahiert Eudora alle Anhänge, und speichert sie als separate Dateien.

Quellen

File systems
[1] http://en.wikipedia.org/wiki/Comparison_of_file_systems

Mbox format
[2] http://www.faqs.org/rfcs/rfc4155.html
[3] http://www.qmail.org/man/man5/mbox.html
[4] http://en.wikipedia.org/wiki/Mbox

Internet message format
[5] http://www.faqs.org/rfcs/rfc2822.html

Eudora mailbox format
[6] http://eudora2unix.sourceforge.net/details.html

Dank

Das Programm wurde in Euphoria geschrieben, und mit dem Euphoria To C Translator 3.0.2 übersetzt. Dank an RDS für diese gute, kostenlose und quelloffene Allzweck-Programmiersprache, und für hervorragende Produktunterstützung.

Das Programm verwendet die Euphoria-Programmbibliothek ARWEN 0.93c. Dank an Michael <vulcan {AT} win.co {DOT} nz>.

Der erzeugte C-Code wurde mit dem Borland C++ 5.5.1 Command-line Compiler übersetzt. Dank an die Borland Software Corporation dafür, dass sie dieses mächtige Werkzeug kostenlos zur Verfügung gestellt hat.

Für Vorschläge und Fehlerberichte möchte ich Erik Kerger, Ton Kerkers, Mattias Nyholm, Mark Finney, Marc Schneider und Dominik Runggaldier danken.

Lizenz

Wenn Sie die folgende Lizenz nicht akzeptieren, dürfen Sie diese Software nicht benutzen oder verbreiten.

1. Urheberrecht
Das Urheberrecht und alle anderen Rechte an mbx2eml liegen beim Autor Jürgen Lüthje, 2003-2007.

2. Nutzungserlaubnis
mbx2eml ist Freeware. Sie dürfen das Programm kostenlos und zeitlich unbegrenzt benutzen.

3. Vervielfältigung
Sie dürfen Software und Dokumentation kopieren und weitergeben, solange die Datei mbx2e068_de.zip nicht verändert wird. Das bedeutet unter anderem, dass die Datei nicht umbenannt oder in einzelne Teile zerteilt werden darf.
Ohne ausdrückliche schriftliche Genehmigung des Autors ist es nicht erlaubt, dieses Programm als Bestandteil eines anderen ZIP-Archivs oder sonst einer Datei zu verbreiten.
Das Programm darf nicht verkauft oder einem kommerziellen Programm bzw. einer kommerziellen Programmsammlung beigelegt werden. Das Programm darf allerdings als Bestandteil von Freeware/Shareware-Sammlungen verbreitet werden, z.B. auf Begleit-CDs/DVDs von Computerzeitschriften.

4. Support
Sie haben keinen Anspruch auf Produktunterstützung durch den Autor. Der Autor ist jedoch bemüht, Anfragen per E-Mail zu beantworten.

5. Haftungsausschluss
Diese Software wird OHNE JEGLICHE GEWÄHR vertrieben; auch ohne die stillschweigende Zusicherung der ALLGEMEINEN GEBRAUCHSTAUGLICHKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Der Autor übernimmt keine Verantwortung oder Haftung für irgendwelche Wirkungen, schädliche oder andere, die durch die Anwendung der Software entstehen können. Die Benutzung geschieht auf eigene Gefahr.


Zuletzt aktualisiert 3. Oktober 2012  –  Impressum
Ich bin nicht verantwortlich für die Inhalte externer Internetseiten.