#!/usr/bin/python # file: mail-core.py # Sending, retrieving, deleting emails, and doing Telnet with Python core modules. import sys, string, os host = "localhost" user = "kendrew" passwd = "kendrew" addrs = ( "aa@localhost", "bb@localhost", "cc@localhost" ) def main(): if len(sys.argv) < 2 or "h" == sys.argv[1]: usage() elif "s" == sys.argv[1]: print len(addrs), "messages to be sent." for addr in addrs: toaddr = user + "@" + host text = "Test mail: " + addr + " to " + toaddr sendMail(host, addr, toaddr, text, text) elif "v" == sys.argv[1]: display(host, user, passwd) elif "d" == sys.argv[1]: display(host, user, passwd, 1) elif "1" == sys.argv[1]: start() elif "0" == sys.argv[1]: stop(host) else: print "Invalid command: " + sys.argv[1] def usage(): print "Usage: mail.py [(0)stopserver|(1)startserver|(s)end|(v)iew|(d)isplay]" sys.exit() def display(host, user, passwd, deletion = 0): import poplib, email pop3 = poplib.POP3(host) pop3.user(user) pop3.pass_(passwd) num = len(pop3.list()[1]) print user, "has", num, "messages" format = "%-3s %-15s %s" if num > 0: if deletion: print "Deleting", num, "messages", for i in range(1, num+1): pop3.dele(i) print ".", print " done." else: print format % ("Num", "From", "Subject") for i in range(1, num+1): str = string.join(pop3.top(i, 1)[1], "\n") msg = email.message_from_string(str) print format % (i, msg["From"], msg["Subject"]) pop3.quit() def sendMail(host, addr, to, subject, content): import smtplib from email.MIMEText import MIMEText print "Sending mail from", addr, "to", to, "...", server = smtplib.SMTP(host) # server.set_debuglevel(1) msg = MIMEText(content) msg["Subject"] = subject msg["From"] = addr msg["To"] = to server.sendmail(addr, [to], msg.as_string()) server.quit() print "done." def start(): print "Starting server...", os.system("c:/apps/bin/james.bat") print "done." def stop(host): import telnetlib print "Stoping server...", telnet = telnetlib.Telnet(host, 4555) telnet.read_until("Login id:") telnet.write("root\n") telnet.read_until("Password:") telnet.write("root\n") telnet.read_until("Welcome") telnet.write("shutdown\n") telnet.close() print "done." main()