[Postfixbuch-users] OT: Alte eMails in anderes IMAP Postfach archivieren

Marc Patermann hans.moser at ofd-z.niedersachsen.de
Mo Mär 26 17:04:12 CEST 2012


Hallo,

Foo Bar schrieb (25.03.2012 15:01 Uhr):
> On 03/25/2012 01:50 PM, David Huecking wrote:

>> Ich würde gerne automatisiert/ per Skript/ per Knopfdruck eMails eines 
>> bestimmten Alters von einem IMAP Postfach "david" in ein anderes IMAP Postfach 
>> "david-archiv" verschieben.
>>
>> Ähnlich der "Archivierungsfunktion" diverser MUAs (M$ Outlook, Lotu$ Note$, 
>> KMail), die dann diese eMail in Dateien iherer teilweisen proprietären Formate 
>> (.P$T, Notes-DB, GZIP oder BZIP komprimierte MBOX) verschieben.
>>
>> Skalieren müsste das lediglich für den Home-Gebrauch mit zwei bis fünf Usern. 
>> IMAP-Server ist z.Z. Cyrus, wenn die Info was nützt. Wäre aber natürlich 
>> schön, sich nicht auf ein Produkt festzulegen - halt ein xyz-IMAP Postfach als 
>> Ziel wäre schön.
>>
>> Hat jemand so etwas schon mal gemacht und könnte einen Wink geben?!
Schreib ein Skript. :)

> uralt und nicht wirklich schön, aber geht ...
"nicht so schön" vor allem weil die eigentlich Aktion auf Dateiebene und 
nicht mit IMAP ausgeführt wird und du dann auch noch mit reconstruct 
aufräumen musst.
Das ist in Python, räumt aber alles weg, was ein X-Spam-Flag hat. Für 
deine Zwecke musst du "server.search" entsprechend anpassen.
http://tools.ietf.org/html/rfc3501#section-6.4.4
"SINCE <date>
          Messages whose internal date (disregarding time and timezone)
          is within or later than the specified date."


#!/usr/bin/python

from imaplib import *
from datetime import date

server = IMAP4("servername")
server.login("user","pw")

mboxes = server.list()

r = server.select("INBOX")
r, data = server.search(None,'(Header X-Spam-Flag \"YES\")')

liste = data[0].split(" ")

heute = date.today()
jahr = heute.year
datum = heute.strftime("%m%d")

to = "INBOX.%i.%s" % (jahr,datum)

r = server.create(to)

for msg in liste:
  server.copy(msg,to)
  server.store(msg,'FLAGS', '(\Deleted)')
server.expunge()
server.close()



Marc



Mehr Informationen über die Mailingliste Postfixbuch-users