Home –> Programme (Download) –> mbx2eml |
[ ![]() |
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
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.
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.
Löschen Sie einfach die Dateien.
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.
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.
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.
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.
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.
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.
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
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.
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.