• 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.
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
 
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.
 
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
 
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.
 
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 ;)
 
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 ...
 
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.
 
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:)
 
den ordner muss man nicht explizit angeben.

cyrus loescht alle mailboxen die mit mxboxcfg und expire "markiert" worden sind.
 
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.
 
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