Gezielt mails löschen *gelöst*.

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
weedy
Beiträge: 585
Registriert: 02.11.2002 21:47:49
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Gezielt mails löschen *gelöst*.

Beitrag von weedy » 01.09.2004 19:39:23

Hallo.

Kennt jemand ein Tool, mit dem ich in dem Mailfolder /var/mail/<login> Mails gezielt löschen kann? Ich will alle Mails löschen, die älter als 1 Jahr sind.

Danke im Voraus,
weedy.
Zuletzt geändert von weedy am 05.09.2004 14:39:04, insgesamt 1-mal geändert.

Benutzeravatar
Natas12
Beiträge: 1751
Registriert: 12.04.2002 20:59:12

Beitrag von Natas12 » 03.09.2004 08:32:34

hmm, ich denke nicht, dass es dafür ein tool gibt. denke mal, dass das eine sache von skripten und / oder cronjobs sein dürfte.

das dürfte nicht zu schwer sein, wenn man sich einarbeitet.
ok, du fragst mich, ob ich es kann: nö... ;-)

Benutzeravatar
godsmacker
Beiträge: 902
Registriert: 16.03.2003 21:50:26
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von godsmacker » 03.09.2004 19:42:24

archivemail kann das sicher denke ich.

Gruss,
Florian

Benutzeravatar
weedy
Beiträge: 585
Registriert: 02.11.2002 21:47:49
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Beitrag von weedy » 05.09.2004 14:38:39

godsmacker hat geschrieben:archivemail kann das sicher denke ich.

Gruss,
Florian
Danke für den Tip. Ich hatte mir in der Zwischenzeit ein Script geschrieben:

Code: Alles auswählen

#!/usr/bin/python

import re
import time
import datetime
import sys

if 3!=sys.argv.__len__():
 print "usage: ", sys.argv[0], " /var/mail/<mailuser> <tmpfile>"
 print "schreibt in <tmpfile> alle Mails aus /var/mail/<mailuser>, welche nicht aelter als 1 Jahr sind"
 sys.exit()

fVon= open( sys.argv[1])
fBis= open( sys.argv[2], "w");


carry= 0

try:
 while 1:
  line= fVon.next()
  srch= re.search( '^From\s+\S+\s+(.*)', line)
  if( srch):
   tsDS= time.strptime( srch.group(1).strip()) #DS Datensatz
   dDS= datetime.datetime.fromtimestamp( time.mktime( tsDS))
   tsNow= time.gmtime()
   dNow= datetime.datetime.fromtimestamp( time.mktime( tsNow))
   dNow2= dNow.replace( dNow.year- 1)
   carry= dDS > dNow2
  carry and fBis.write( line)
except StopIteration:
 fVon.close()
 fBis.close()
Ich hoffe mal, daß die Regexpression gesichert an jedem Mailanfang steht, dann dürfte es keine Probleme geben.

weedy.

Antworten