Am Don, 13 Nov 2003, schrieb Matthias Houdek:
Hannes Vogelmann am Donnerstag, 13. November 2003 17:13:
Am Don, 13 Nov 2003, schrieb Matthias Houdek:
Andreas Feile am Mittwoch, 12. November 2003 23:12:
Hannes Vogelmann, Mittwoch, 12. November 2003 09:28:
Im Prinzip warest du aber wohl mit IMAP besser bedient.
Mit IMAP habe ich mich noch nicht beschäftigt, aber auch hier wäre ja das Problem, den Mails eine Lebensdauer zu geben.
IMAP verwaltet die Mails serverseitig, und ist genau für Problemstellungen wie Deine entworfen worden.
... sofern der Server das kann (bzw. man den entsprechende Zugriff hat, das einzurichten) und die Performance der Anbindung gut genug ist (IMAP via Internet mit Modem stell ich mir ziehmlich öde vor ;-).
Ich eben keinen Zugriff auf den Server, d.h. ich keine dort keine Einstellungen wie Lebensdauer, Weiterleitung usw... vornehmen. Ich kann ihn eben einfach nur pop3 mäßig leeren oder, was aber ganz entsetzlich schlecht funktioniert, mit OnlineWebAccess zugreifen. Letztreres ist aber wirklich das allerletzte!
Dann bleibt wohl nur noch der Weg über ein eigenes kleines Script, dass via telnet auf den POP-Server (Port 110) zugreift (sofern du kein entsprechendes Programm findest - ich hab keins gefunden, aber mir reicht auch die Lösung mit dem Sonntagnacht-Löschen).
Nachdem du dich mit USER <name> und PASS <passwort> am Server angemeldet hast, steht dir das entsprechende Postfach zur freien Verfügung.
Mit LIST werden alle Mails mit lfd. Nummer und Länge in Byte zeilenweise aufgerufen. Leider kann man das nicht weiter verwenden, außer evtl. für die Anzahl aller Bytes. Du könntest z.B. hier ansetzen und immer die erste Hälfte aller Mails löschen (oder die ersten 10 % oder so).
Naja, da gefällt mir Sonntag Nacht besser ;-)
Oder du rufts Mail für Mail mit RETR <x> (x ist die laufende Nummer) auf und entscheidest jetzt nach best. Kriterien im Header, ob du sie löschen willst - z.B. über die Header-Zeile "Date ..." oder Arrival-Date ...". Mit DELE <x> wird die betreffende Mail dann gelöscht (richtig gelöscht wird eigentlich erst, wenn du die Sitzung ordnungsgemäß mit QUIT beendest - also nicht vergessen, sonst sind alle Mails das nächste Mal wieder da ;-).
Mit dem Befehl TOP <x> kann man ja auch nur die Header runterladen. Jetzt müsste man nur noch ein perlscript haben, das das automatisch macht und das Datum aus den Headern extrahiert und dann mit DELE (x) die älteren Mails löscht und anschließend eines normales fetchmail auslöst. Leider mangelt es mir an dazu an den nötigen perl-Kenntnissen.
Tipp: Ich würde erst einmal die Variante 1 probieren (Anzahl aller Mails bestimmen, davon die ersten x % löschen). Variante 2 ist dann schon ein wenig anspruchsvoller.
Habe es mal händisch probiert und es funktioniert. Nur woher ein script nehmen, dass das für mich macht? Naja vielleicht schlage ich mich die Nacht doch mal mit dem Perl-Manual herum ;-). cu Hannes