Hallo, Am 29.07.2009 um 13:36 schrieb Christopher Arndt:
Hallo Uwe,
Uwe Hentzschel schrieb:
ich möchte Mails aus einem Exchange-Ordner (IMAP) auslesen und später archivieren. Als Anzeige der archivierten Mail soll Outlook verwendet werden (msg-Format).
Was soll "msg-Format" genau heißen?
OK - wenn ich per Drag'n'Drop eine Mail aus der Inbox (Outlook) auf den Desktop ziehe entsteht eine Datei <subject der mail>.msg Type "Outlook-Element". Vorteil - Doppelklick auf das File öffnet Outlook und zeigt die Mail an. Von http://www.fileformat.info/format/outlookmsg: MSG files are outlook messages saved as files. They are saved as "COM stuctured storage OLE2 compound documents" or "DocFile", which is the same technique used by Word, Excel and many many more.
Mir ist es bisher nur gelungen die Mails als "RFC 822 mail text" zu schreiben und damit kann Outlook 200x nichts anfangen.
"nichts anfangen" ist ungefähr so genau wie "geht nicht". Bitte liefere eine genauere Beschreibung des Fehlers/unerwarteten Verhaltens, wenn wir dir helfen sollen. Ich kann mir eigentlich nicht vorstellen, das Outlook RFC 822 formatierte Nachrichten nicht anzeigen kann.
Ziel ist wie gesagt ein Doppelklick auf eine archivierte Mail soll Outlook öffnen und anzeigen. "RFC 822 mail text" wäre als ein MIME Format analog Outlook Express (*.eml) Und das öffnet Outlook 200x nicht (wird nicht unterstützt). Die Mail an sich kann ich ja Lesen und entsprechend für die Archivierung auswerten. Ich bräuchte nur die unmanipulierte Mail als File fürs Archive. Eine Einschränkung wäre noch, das Skript läuft auf einem Linux Server. Ich kann also keine win32 Python Module verwenden.
Gibts da einen Möglichkeit?
Mozilla Thunderbird zur Anzeige nehmen?
####################################################### #!/usr/bin/env python
import imaplib import imaplib_connect
c = imaplib_connect.open_connection()
print c.select('INBOX')
for msg_id in c.search(None, 'ALL')[1][0].split(): print msg_id fp = open('%s.eml' % msg_id, 'w') fp.write(c.fetch(msg_id, '(RFC822)')[1][0][1]) fp.close()
c.logout() #######################################################
Der Code scheint ok, vielleicht liegt's am Format der E-mails selbst? Kannst du irgendwo Beispieldaten posten, z.B. in einem Pastebin?
Chris
_______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de