[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Alternative zu fetchmail



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Matthias Houdek wrote:

> Wenn du es fertig hast, solltest du es auch veröffentlichen. Es gibt 
> bestimmt viele Interessenten.

Na, vielleicht hilft ja auch mein kleines Codeschnipsel weiter, hab das
eben mal aus meinem Skript ausgebaut, ist noch etwas arg Q&D - aber es
sollte zumindest funktionieren, vielleicht sollte ich das mal etwas
überarbeiten und auf meine Webseite stellen :-)

Aufruf sollte sich eigentlich selbst erschließen, oder? Und sollte auch
mit jedem auf Debian vorhandenem Python laufen...

Fragen und Anregungen an mich :-)


- --- SNIP --
#!/usr/bin/python
import poplib
import sys
import time
import os

if len(sys.argv) != 7:
    print "pykeep.py <host> <port> <user> <password> <keep> <uidlfile>"
    print "  <host>     hostname of POP3 server"
    print "  <port>     port to use (normally 110)"
    print "  <user>     username of POP3 account"
    print "  <password> password for POP3 account"
    print "  <keep>     keeptime in days"
    print "  <uidlfile> filename where to store time information"
    print
    print "(C)ifjke,2005. $Id: pykeep.py 6 2005-07-07 13:49:27Z ifjke $"
    sys.exit(1)

host = sys.argv[1]
port = int(sys.argv[2])
user = sys.argv[3]
password = sys.argv[4]
keep = int(sys.argv[5])*60*60*24
uidlf = sys.argv[6]
uidld = {}

if os.path.exists(uidlf):
    f = open(uidlf,'r')
    for line in f:
        stamp,uid = line.strip().split(':',1)
        uidld[uid] = [int(stamp),False]
    f.close()

server = poplib.POP3(host,port)
server.user(user)
server.pass_(password)

response  = server.uidl()

todele = []

for line in response[1]:
    num,uid = line.strip().split(' ',1)
    if uidld.has_key(uid):
        age = time.time()-uidld[uid][0]
        uidld[uid][1]=True
        print "%s is %is old" %(uid,age)
        if age > keep:
            todele.append(num)
    else:
        uidld[uid] = [int(time.time()), True]

f = open(uidlf,'w')
for key in uidld:
    if uidld[key][1]:
        f.write('%s:%s\n' % (uidld[key][0],key))
f.close()

for key in todele:
    print "deleting message %s from server" % key
    server.dele(key)
server.quit()
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (MingW32)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFCzTWUvvmCkIIgH8QRAhqTAKCwV3tbLnSMoy9FgZyEO0NYv3VJ3QCgm9oI
OeZx+wB+i6t5tr17UqcJkzw=
=msnA
-----END PGP SIGNATURE-----



Reply to: