• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

sa-learn --spam /var/spool/imap/user/SPAM -> wie löschen

Status
Für weitere Antworten geschlossen.

komaii

Member
Hallo ng,

ich lasse täglich die mails von den usern in die gemeinsamen imap ordner user.SPAM und user.HAM über squirrelmail einsortieren.

weiter lasse ich dann täglich per cron die spam und ham mails ausslesen via:
sa-learn --spam /var/spool/imap/user/SPAM
sa-learn --spam /var/spool/imap/user/HAM

meine frage nun:

wie kann ich anschliessend die gelernten mail aus den verzeichnissen löschen?

mit rm /var/spool/imap/user/SPAM/* gehts ja nicht, da er mir ja dann den imap ordner zerstört und ich den mit reconstruct wieder richten muss.

wäre dankbar um hilfe,

lg,
thomas
 

dermichel

Advanced Hacker
loesungsansatz:

den ordner "spam" auf 1 tag befristen und den ordner einmal am tag mit cron aufraeumen.

Mit cyradm:
Code:
mboxconfig user.michael.Spam expire 1

und mit cyr_expire im cron die mailbox aufräumen lassen.
 

dermichel

Advanced Hacker
ueber google habe ich noch einen coolen ansatz gefunden:

Wens noch beschäftigt ich habe nun noch eine Lösung gefunden die zumindest bei mir ohne Kompromisse funktioniert!
Die Lösung lautet: über Telnet die Mailbox löschen und wieder anlegen. Da werden viell einige sagen: Ja super aber wie soll das über ein Script funktionieren?
Die Lösung lautet "expect". Einfach das Projekt expect installieren. Dann kann man mit zB dieser Befehlsfolge in einer Datei gespeichert ein Postfach "spam" im Konto "learn" auf localhost 127.0.0.1 im Imap Konto 143 löschen:
--> cut
#!/usr/bin/expect
spawn telnet 127.0.0.1 143
expect "OK" {send "? login learn Super-geheimes-Passwort\r"}
expect "OK" {send "? delete INBOX.spam\r"}
expect "OK" {send "? create INBOX.spam\r"}
expect "OK" {send "? logout\r"}
expect {
"Connection closed" {puts stdout "\nMailbox erfolgreich geleert!"}
default {puts stdout "\nFehler!"}
}
<-- cut
 
OP
K

komaii

Member
dermichel schrieb:
loesungsansatz:

den ordner "spam" auf 1 tag befristen und den ordner einmal am tag mit cron aufraeumen.

Mit cyradm:
Code:
mboxconfig user.michael.Spam expire 1

also wie ich das jetzt verstanden habe logge ich mich als cyradm ein und setzte auf der mailbox user.SPAM das expire auf 1 tag.

nur das mir dem cyr_expire über cron komme ich nicht klar. kannst mir da bitte sagen wie der cron eintrag aussehen sollte?

und mit cyr_expire im cron die mailbox aufräumen lassen.
 

dermichel

Advanced Hacker
http://www.die.net/doc/linux/man/man5/cyrus.conf.5.html


bau es am besten als EVENT ein - cron ist da unnoetig.
 
OP
K

komaii

Member
sry aber das mit den EVENTS kappier ich nicht ganz, wäre das hier richtig so:

# cleanup cmd="ipurge -E 1 /var/spool/imap/user/SPAM"

damit müsste es doch funktionieren. So wir das postfach SPAM jeden Tag gelöscht oder hab ich das falsch verstanden?

danke für die Hilfe ;)
 

oc2pus

Ultimate Guru
komaii schrieb:
sry aber das mit den EVENTS kappier ich nicht ganz, wäre das hier richtig so:

# cleanup cmd="ipurge -E 1 /var/spool/imap/user/SPAM"

damit müsste es doch funktionieren. So wir das postfach SPAM jeden Tag gelöscht oder hab ich das falsch verstanden?
du musst das Kommentarzeichen "#" noch entfernen, dann wird diese Zeile aktiv ...
 

dermichel

Advanced Hacker
delprune cmd="cyr_expire -E 1" at=0300

und um 3 uhr nachts wird der befehl ausgefuehrt - einfach in deine EVENTS in der cyrus.conf einbauen.
 
OP
K

komaii

Member
super vielen dank für eure hilfe, ich habs jetzt so gemacht, mal schaun obs funzt:

in der crontab lass ich den ordner um 12:05 auslesen via:
5 12 * * * sa-learn --spam /var/spool/imap/user/SPAM

und dann mittels den events in der cyrus.conf um 12:10 löschen:
delprune cmd="cyr_expire -E 1" at=1210 /var/spool/imap/user/SPAM

so ich hoffe das stimmt so :eek:)
 

dermichel

Advanced Hacker
den ordner muss man nicht explizit angeben.

cyrus loescht alle mailboxen die mit mxboxcfg und expire "markiert" worden sind.
 
OP
K

komaii

Member
ahh oke das wusste ich nicht, wie sehe ich per cyradm welche mit expire markiert sind?

sehe ich das mit listacl mailbox? ich finde leider nix in der cyradm docu darüber oder bin blind.
 

egenolf

Newbie
Hy,
Da steht schon die entscheidende Frage:
wie sehe ich, welche Postfächer mit cyradm und expire markiert sind, und vor allem, nach welcher zeit...

ich kann den Wert zwar setzten, aber anscheinend nicht mehr auslesen...
 
Status
Für weitere Antworten geschlossen.
Oben