[Python编程(第4版)].(Programming.Python.4th.Edition).Mark.Lutz.文字版

(yzsuai) #1

elif command[0] == 'l': # list
if len(command) == 1:
for i in range(1, len(msgList)+1):
showmessage(i, msgList)
else:
showmessage(msgnum(command), msgList)


elif command[0] == 's': # save
if len(command) == 1:
for i in range(1, len(msgList)+1):
savemessage(i, mailfile, msgList)
else:
savemessage(msgnum(command), mailfile, msgList)


elif command[0] == 'd': # mark for deletion later
if len(command) == 1: # 3.x needs list(): iter
toDelete = list(range(1, len(msgList)+1))
else:
delnum = msgnum(command)
if (1 <= delnum <= len(msgList)) and (delnum not in toDelete):
toDelete.append(delnum)
else:
print('Bad message number')


elif command[0] == 'm': # send a new mail via SMTP
try:
sendmessage()
except:
print('Error - mail not sent')


elif command[0] == '?':
print(helptext)
else:
print('What? -- type "?" for commands help')
return toDelete


def main():
global parser, sender, fetcher
mailserver = mailconfig.popservername
mailuser = mailconfig.popusername
mailfile = mailconfig.savemailfile


parser = mailtools.MailParser()
sender = mailtools.MailSender()
fetcher = mailtools.MailFetcherConsole(mailserver, mailuser)


def progress(i, max):
print(i, 'of', max)


hdrsList, msgSizes, ignore = fetcher.downloadAllHeaders(progress)
msgList = [parser.parseHeaders(hdrtext) for hdrtext in hdrsList]


print('[Pymail email client]')
toDelete = interact(msgList, msgSizes, mailfile)


988 | Chapter 13: Client-Side Scripting

Free download pdf