This is a cool little mailreader I wrote.
#!/usr/bin/python # (c) 2001-2003 Hal Canary # Not only is this code badly written, # it is probably horribly insecure, so I # provide ABSOLUTELY NO WARRANTY. # License: # http://www.gnu.org/licenses/gpl.txt import cgi import os import string mypassword="badpassword" cgilocation="/cgi-bin/cgiwrap/hal/mailmenu.py" defaulfile="/var/spool/mail/hal" mailfolderslist="/home/hal/mail/.ls" style="/~hal/hal.css" icon="/~hal/favicon.ico" def header(): print "Content-type: text/html \n" print '<?xml version="1.0" encoding="US-ASCII"?>' print '<!DOCTYPE html ' print ' PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ' print ' "DTD/xhtml1-transitional.dtd">' print '<html xmlns="http://www.w3.org/1999/xhtml" ', print 'xml:lang="en" lang="en">' print ' <head>' print ' <title>CGI Mail</title>' print ' <link rel="SHORTCUT ICON" href="'+icon+'" />' print ' <link rel="stylesheet" type="text/css" href="'+style+'" />' print ' </head>' print ' <body>' print ' <div class="small-center">' print ' <p>' print ' <a href="/">MAIN</a> ' print ' </p>' print ' </div>' print " <h1>Hal's Mail</h1>" def tailer(): print " <hr />\n </body>\n</html>" def login(): print ' <form method="post" action="'+cgilocation+'">' print ' <p>Check a mail folder on ups. <br />' print ' <input type="hidden" name="N" value="0" />' print ' <input type="hidden" name="file"', print ' value="'+defaulfile+'" />' print ' <b>Password:</b>' print ' <input type="password" name="passwd" size="25" />' print ' <input type="submit" value="Login" />' print ' </p>' print ' </form>' def getmenu(): filename=form["file"].value passwd=form["passwd"].value print ' <form method="post" action="'+cgilocation+'">' print ' <p>' print ' <input type="hidden" name="N" value="0" />' print ' <input type="hidden" name="file" value="'+filename+'" />' print ' <input type="hidden" name="passwd" value="'+passwd+'" />' print ' <input type="submit" value="Folder Index" />' print " </p>\n </form>\n" print ' <form method="post" action="'+cgilocation+'">' print ' <p>' print ' <input type="hidden" name="N" value="0" />' print ' <input type="hidden" name="file" value=" " />' print ' <input type="hidden" name="passwd" value="'+passwd+'" />' print ' <input type="submit" value="Choose Folder" />' print " </p>\n </form>\n" def choosefolder(): filename=form["file"].value passwd=form["passwd"].value file=open(mailfolderslist,'r') print ' <form method="post" action="'+cgilocation+'">' print " <p>" print ' <input type="hidden" name="N" value="'+str(0)+'" />' print ' <input type="hidden" name="passwd"', print ' value="'+form["passwd"].value+'" />' print " <select name=\"file\">" print " <option>/var/spool/mail/hal</option>" line= file.readline() while line != '' : print " <option>"+line[:-1]+"</option>" line= file.readline() print ' </select>' print ' <input type="submit" value="Get Folder" />' print " </p>\n </form>" file.close() print ' <form method="post" action="'+cgilocation+'">' print " <p>" print ' <input type="hidden" name="N" value="0" />' print ' <input type="hidden" name="file" value="'+defaulfile+'" />' print ' <input type="hidden" name="passwd" value="'+passwd+'" />' print ' <input type="submit" value="Default" />' print " </p>\n </form>\n" def writemailn(): filename=form["file"].value passwd=form["passwd"].value messagenumber=int(form["N"].value) file = open(filename, 'r') N=0 line= file.readline() print '<table><tr><td><pre>' while line != '': if line[0:5]=="From ": N=N+1 if messagenumber == N: print string.replace(line,"<","<"), #print line, line= file.readline() print '</pre></td></tr></table>' file.close() def folderindex(): filename=form["file"].value passwd=form["passwd"].value file = open(filename, 'r') formstate="closed" N=0 line= file.readline() while line != '': if line[0:5]=="From " and N==0: N=1 elif line[0:5]=="From ": N=N+1 if formstate=="open" : print " </p>\n </form>" print "\n <hr />" formstate = "open" print '' print ' <form method="post" ', print 'action="'+cgilocation+'">' print ' <!--',line[:-1],'-->' print " <p>" print ' <input type="hidden" name="N"', print ' value="' + str(N) + '" />' print ' <input type="hidden" name="file"', print ' value="'+filename+'" />' print ' <input type="hidden" name="passwd"', print ' value="'+passwd+'" />' print ' <input type="submit" value="Get Mail" />' if line[0:44]=="Subject: DON'T DELETE THIS MESSAGE -- FOLDER": print '', elif line[0:31]=="From: Mail System Internal Data": print '', elif line[0:9]=="Subject: " or line[0:6]=="From: " : print ' <br />',string.replace(line,"<","<"), elif line[0:4]=="To: " or line[0:6]=="Date: " : if formstate=="open" : print ' <br />', print string.replace(line,"<","<"), line= file.readline() file.close() if formstate=="open" : print " </p>\n </form> \n\n <hr />\n" formstate = "closed" form = cgi.FieldStorage() header() if not (form.has_key("passwd") and form.has_key("file") and form.has_key("N")): login() elif form["passwd"].value != mypassword : print "<p>Wrong Passwd</p>" login() elif form["file"].value == ' ': choosefolder() elif form["N"].value == "0" : folderindex() getmenu() else: writemailn() print ' <hr />' getmenu() tailer()
file modification time: 2003-12-07 22:23:26
Copyright 1997-2013 by Hal Canary.
mailto: halcanary at gmail dot com
http://halcanary.org