mmdf(5) Benutzerhandbucher mmdf(5) BEZEICHNUNG MMDF - Das Mailboxformat >>Multi-channel Memorandum Distribution Facility<< BESCHREIBUNG Dieses Dokument beschreibt das Mailboxformat MMDF, das von einigen MTAs und MUAs (z.B. scomail(1)) verwendet wird, um E-Mails lokal zu speichern. Eine MMDF-Mailbox ist eine Textdatei, die eine beliebige Anzahl E-Mail-Nachrichten enthalt. Jede Nachricht besteht aus einem Stempel, gefolgt von einer E-Mail-Nachricht entsprechend RFC822/RFC2822, wiederum gefolgt von einem Stempel. Das Dateiformat ist zeilenorientiert. Die Zeilen werden durch Zeilenvorschube getrennt (ASCII 10). Eine Stempelzeile besteht aus den vier Zeichen >>^A^A^A^A<< (Strg-A; ASCII 1). Beispiel fur eine MMDF-Mailbox, die zwei Nachrichten enthalt: ^A^A^A^A From: example@example.com To: example@example.org Subject: test >Was ich uber das MMDF-Format gelernt habe: ^A^A^A^A ^A^A^A^A From: example@example.com To: example@example.org Subject: test 2 bar ^A^A^A^A Im Gegensatz zu den meisten anderen auf einer Einzeldatei basierenden Mailboxformaten wie MBOXO und MBOXRD (siehe mbox(5)) ist es in MMDF-Mailboxen nicht notig, die >>From<<-Zeilen in Anfuhrungszeichen zu setzen, da solche Zeilen in diesem Format keine besondere Bedeutung haben. Wenn die (ublicherweise durch stat(2) ermittelte) Anderungszeit einer nicht leeren Mailbox grosser beziehungsweise neuer als die Zugriffszeit der Datei ist, dann enthalt die Datei neue E-Mails. Viele MUAs setzen eine >>Status:<<-Kopfzeile in jede Nachricht, um zu bezeichnen, welche Nachrichten bereits gelesen wurden. SPERREN Da auf MMDF-Dateien haufig von mehreren Programmen parallel zugegriffen wird, sollte der Zugriff auf diese Dateien generell nicht ohne Sperrung erfolgen. Allgemein werden drei Sperrmechanismen (und Kombinationen davon) verwendet: o Das Sperren mit fcntl(2) wird zumeist auf aktuellen, POSIX-konformen Systemen verwendet. Die Nutzung dieser Sperrmethode ist insbesondere bei MMDF-Dateien ratsam, auf die uber das Network File System (NFS) zugegriffen wird, da es die einzige Moglichkeit zu sein scheint, die Zwischenspeicher von NFS-Clients zuverlassig fur ungultig zu erklaren. o Das Sperren mit flock(2) wird meist auf BSD-basierten Systemen verwendet. o >>Dotlocking<< wird auf allen Systemtypen verwendet. Um beispielsweise eine MMDF-Datei namens Mail-Ordner zu sperren, legt eine Anwendung zunachst eine temporare Datei mit einem eindeutigen Namen in dem Verzeichnis an, indem sich die Datei Mail-Ordner befindet. Die Anwendung versucht dann, mit dem Systemaufruf link(2) einen harten Link namens Mail-Ordner.lock zu erstellen, der auf die temporare Datei zeigt. Der Erfolg des Systemaufrufs link(2) sollte zusatzlich mit stat(2)-Systemaufrufen verifiziert werden. Falls der Link erfolgreich erstellt wurde, wird der Mail-Ordner als >>dotlocked<< betrachtet. Der Link zur temporaren Datei kann daraufhin sicher entfernt werden. Um die Sperre aufzuheben, entfernt eine Anwendung einfach die Datei Mail-Ordner.lock. Wenn mehrere Methoden kombiniert werden, sollte bei der Implementierung sichergestellt werden, dass die nicht blockierenden Varianten der Systemaufrufe fcntl(2) und flock(2) verwendet werden, um tote Verklemmungen zu vermeiden. Wenn mehrere Methoden kombiniert werden, darf eine MMDF-Datei nicht als erfolgreich gesperrt betrachtet werden, bevor nicht alle einzelnen Sperren wirksam sind. Wenn eine der einzelnen Sperrmethoden scheitert, sollte eine Anwendung alle Sperren aufheben, die sie erfolgreich angewendet hat und mit dem gesamten Sperrvorgang nach einer angemessenen Wartezeit von vorn beginnen. Der Sperrmechanismus auf einem bestimmten System ist eine Sache der lokalen Regeln und sollte konsistent von allen auf dem System installierten Anwendungen genutzt werden, die auf MMDF zugreifen. Erfolgt dies nicht, kann es zum Verlust von E-Mail-Daten und beschadigten MMDF-Dateien kommen. KONFORM ZU MMDF ist kein Teil irgendeines gegenwartig unterstutzten Standards. GESCHICHTE MMDF wurde von Dave Crocker an der University of Delaware entwickelt. SIEHE AUCH scomail(1), fcntl(2), flock(2), link(2), stat(2), mbox(5), RFC822, RFC2822 AUTOR Urs Janssen UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Mario Blattermann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Unix 18. Februar 2002 mmdf(5)