Frage

Ich habe eine einzelne Spule Mbox-Datei, die mit der Evolution erstellt wurde, eine Auswahl an E-Mails enthalten, die ich drucken möchten. Mein Problem ist, dass die E-Mails nicht in die Mbox-Datei in chronologischer Reihenfolge angeordnet. Ich mag den besten Weg, wissen, um die Dateien von dem ersten zu platzieren, um mit Bash, Perl oder Python zu halten. Ich möchte empfangen oder für Dateien an mich gerichtet, und für Dateien geschickt von mir geschickt. Wäre es vielleicht einfacher sein maildir-Dateien zu verwenden oder so?

Die E-Mails sind derzeit im Format:

From x@blah.com Fri Aug 12 09:34:09 2005
Message-ID: <42FBEE81.9090701@blah.com>
Date: Fri, 12 Aug 2005 09:34:09 +0900
From: me <x@blah.com>
User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716)
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: someone <someone@hotmail.com>
Subject: Re: (no subject)
References: <BAY101-F9353854000A4758A7E2CCA9BD0@phx.gbl>
In-Reply-To: <BAY101-F9353854000A4758A7E2CCA9BD0@phx.gbl>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Status: RO
X-Status: 
X-Keywords:                 
X-UID: 371
X-Evolution-Source: imap://x+blah.com@blah.com/
X-Evolution: 00000002-0010

Hey

the actual content of the email

someone wrote:

> lines of quotedtext

Ich frage mich, ob es einen Weg gibt, diese Informationen zu verwenden, um einfach die Datei neu zu organisieren, vielleicht mit Perl oder so.

War es hilfreich?

Lösung

Dies ist, wie Sie es in Python tun könnten:

#!/usr/bin/python2.5
from email.utils import parsedate
import mailbox

def extract_date(email):
    date = email.get('Date')
    return parsedate(date)

the_mailbox = mailbox.mbox('/path/to/mbox')
sorted_mails = sorted(the_mailbox, key=extract_date)
the_mailbox.update(enumerate(sorted_mails))
the_mailbox.flush()

Andere Tipps

Python-Lösung arbeiten pflegt, wenn E-Mail-Nachrichten in mbox importiert wurde Thunderbird ImportExportTools Addon verwenden. Es gibt ein Problem: Nachrichten mit ‚von‘ Zeile im Format Präfix werden:

From - Tue Apr 27 19:42:22 2010

aber ImportExportTools Präfix mit einem solchen 'von' Zeile:

From - Sat May 01 2010 15:07:31 GMT+0400 (Russian Daylight Time)

Es gibt also zwei Fehler:

  1. sequence 'Zeit Jahr eingebrochen 'Jahr Zeit'
  2. zusätzlicher Müll mit GMT info zusammen mit Zeitzonennamen

Da Python mailbox.py/UnixMailbox hat fest einprogrammiert regexp für ‚von‘ Leitungsanpassung, können einige Nachrichten nicht analysiert.

Ich schrieb die Fehlermeldung an den Autor, aber es gibt viele fälschlicherweise importierten Nachrichten: (

.

Was ist der Sinn der mbox in Umschreiben während Sie die E-Mails im Speicher neu anordnen können, wenn das Postfach Laden auf? Welche Zeit ist, die Sie bestellen auf möchten? Datum des Empfangens? Sendedatum? Wie auch immer, alle Rubin / Python / Perl-Module für das Spiel mit MBoxen kann das tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top