python之POP详解,pythonpop,[Python]代码#!


[Python]代码

#!/usr/bin/env python#-*-coding = UTF-8-*-#POP_email.py#auth@:xfk#date@:2012-04-30################################################################# WARNING: This program deletes mail from the specified mailbox.#           Do Not point it to any mailbox you are care about!################################################################import getpassimport sysimport poplibimport emailif len(sys.argv) < 4:    print "[*]usage:%s server fromaddr toaddr " % sys.argv[0]    sys.exit(1)(host,user,dest) = sys.argv[1:]passwd = getpass.getpass()destfd = open(dest,"at")p = poplib.POP3(host)           #如果服务器支持和需要APOP认证,APOP使用加密保护密码被窃取try:    print "Attempting APOP authentication..."    print "Logging on..."    p.apop(user,passwd)    print "Success.\n"except poplib.error_proto:    print "Attempting standard authentication..."    try:        print "Logging on..."        p.user(user)        p.pass_(passwd)        print "Success.\n"    except poplib.error_proto,e:        print "Login fialed:",e        sys.exit(1)print "*****Scanning INBOX...*****"         #扫描服务器邮箱的邮件mail_box_list = p.list()[1]print "There is %d messages.\n" % len(mail_box_list)delelist = []           #要进行删除的又见队列for item in mail_box_list:    number,octets = item.split(' ')         #每一个元素之间有空格隔开    print "Downloading message %s (%s bytes)..." % (number,octets)    lines = p.retr(number)[1]           #下载邮件    msg = email.message_from_string("\n".join(lines))           #建立一个对象接受邮件内容    destfd.write(msg.as_string(unixfrom = 1))           #讲邮件内容写进目标文件    destfd.write("\n")    delelist.append(number)    print "Done !\n"destfd.close()counter = 0for number in delelist:    counter = counter + 1    print "Deleting message %d of %d \r" % (counter,len(delelist))    p.dele(number)          #删除邮件if counter > 0:    print "Successfully deleted %d message from server.\n" % counterelse:    print "No messages present to download.\n"print "Closing connection..."p.quit()            #断开连接print "Done !\n"

评论关闭