#!/usr/bin/env python from imaplib import IMAP4 import sys #IMAP server against which we authenticate server="127.0.0.1" #Port number for IMAP server. Usually 143 port=143 #Below here you shouldn't need to edit anything while 1: #Read user and password from stdin, remove the newline, split at the space #and assign to the user and password variables line=sys.stdin.readline()[:-1] [user,password]=line.split(' ') #Connect to the IMAP server p=IMAP4(server,port) #Try to authenticate. If it doesn't work, it throws an exception try: p.login(user,password) except: #If it threw an exception, log in cache.log the auth booboo sys.stderr.write("ERR authenticating %s\n"%user) #Then deny access sys.stdout.write("ERR\n") #IMPORTANT!!!!!!!!!!!! Flush stdout sys.stdout.flush() continue #If it didn't throw exceptions, that means it authenticated #Log success to cache.log sys.stderr.write("OK authenticated %s\n"%user) #Then allow access sys.stdout.write("OK\n") sys.stdout.flush()