1.5.5. fejezet, POP3s levél ellenőrző

POP3s postafiók periódikus ellenőrzése időzítéssel és szignál kezeléssel.

#!/bin/python
import sched, time, poplib, getpass, signal, sys
 
M=poplib.POP3_SSL('mondoka.hu')
numMsg = 0
lastNum = 0
def exitfnct(signum,frame):
    global s, evnt
    s.cancel(evnt)
    print "connection closed."
    M.quit()
    sys.exit()
 
def PopOpen(passwd):
    global M
    M.user('a@b.hu')
    M.pass_(passwd)
 
def chkmail():
    global s, M, numMsg, lastNum, evnt
    numMsg=len(M.list()[1])
    if numMsg!=lastNum:
        print "Mail count:",numMsg
        lastNum=numMsg
 
s=sched.scheduler(time.time,time.sleep)
signal.signal(signal.SIGTERM,exitfnct)
passwd=getpass.getpass('password for a@b.hu:')
PopOpen(passwd)
i=0
while (True):
  try:
    evnt=s.enter(15,1,chkmail,())
    i+=1
    print i
    s.run()
  except KeyboardInterrupt:
    exitfnct(0,0)