2005年08月24日 星期三 23:47
其中的""" """注释是实际操作中取回来的mail头部,现在的问题是,我想在本机先查看一下email的题目,在决定是否将全部邮件下下来,还是决定删除,省得每次都要在邮件列表中一个一个的点击删除邮件 经常一上邮箱,发现好几百封Email, 一个一个点击删除,很麻烦,所以想作一个自动化得删除工具,可以使用脚本指定删除一些特定标题邮件 现在的问题是,邮件得subject项可能使用不同得编码方式,但是由于是我眼睛查看,至少需要转换成我可以看懂得文字,所以,想询问 1. 有没有好方法可以将不同编码格式转换成可视得文字 2. 在pop3.163.com这个程序好使,但是在mail.yahoo.com.cn不行, 有没有好方法可以根据邮箱地址获取它得pop3服务器得名字,比如类似pop3.yahoo.com.cn(这个不好使),yahoo得pop3服务器是什么名字? 原始代码: # mailh.py #!/usr/bin/evn python #记住 user-pass-stat/list-top-dele/retr-quit这用法 import poplib, getpass, string, sys #先载入要用的函式库 """ ('+OK core mail', [ 'Received: from www.linuxforum.net (unknown [211.147.5.190])', '\tby mx8 (Coremail) with SMTP id Y8BBsYDGiUKWWYgB.1', '\tfor <wen at 163.com>; Tue, 17 May 2005 18:25:04 +0800 (CST)', 'X-Originating-IP: [211.147.5.190]', 'Received: (from linux at localhost)', '\tby www.linuxforum.net (8.11.6/8.11.2) id j4HAVIW27070;', '\tTue, 17 May 2005 18:31:18 +0800', 'Date: Tue, 17 May 2005 18:31:18 +0800', 'Message-Id: <'">200505171031.j4HAVIW27070 at www.linuxforum.net>', 'To: wen at 163.com', 'Subject: \xc4\xfa\xb5\xc4\xc3\xdc\xc2\xeb : China Linux Forum', 'From: davidd at linuxforum.net', 'Sender: davidd at linuxforum.net', 'Reply-to: davidd at linuxforum.net', 'X-Mailer: UBBThreads', '', '' ], 622) """ host = raw_input("The hostname: ") # raw_input()从 stdin 读取字串 if (len(host)) == 0: #如果用户什么也不打,就用基本设定好了,自己方便嘛 host = "" username = "" password = "" else: username = raw_input("your username: ") password = getpass.getpass() # getpass.getpass()会读取密码,和 # raw_input()一样,只是不把键值输出到萤幕而已 try: sess = poplib.POP3(host) #打开 pop3 连接,得到一个该连线的实体 sess.user(username) #向 pop3连线输出用户名 sess.pass_(password) #再来是密码 except: #如果上面三行出错了,就表示连线有问题,干脆走人啦 print "O^O, there is an error in opening connection!" sys.exit() nMess = sess.stat()[0] #问一下到底有多少信 headers = [] #这个本程式不会用到,但将来扩展时或许有用 for i in range(1, nMess+1): # Python 的 range()是从 0开始数,但邮件序号是从一开始的 print mesg = sess.top(i,0) #用 top 指令读信件的头几行,这里 mesg[0] 是一 #些资料, mesg[1]则是字串类的一个序列 print i, mesg[0] for j in range(len(mesg[1])): #这个回圈尝试把寄件人,收件人,主题等资料抽出来 if mesg[1][j][0:5] == 'From:' or mesg[1][j][0:5] == 'Date:' \ or mesg[1][j][0:8] == 'Subject:' or mesg[1][j][0:3] == 'To:': print mesg[1][j] headers.append(mesg[1][j]) #存起来,本程式不会用到 print "\n" if nMess>0: print "Received %i message total."%(nMess) else: print "Nop, no mail on ", host, "for", username sess.quit() #结束 --------------------------------- DO YOU YAHOO!? 雅虎免费G邮箱-中国第一绝无垃圾邮件骚扰超大邮箱 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050824/47bf40ee/attachment.html
Zeuux © 2025
京ICP备05028076号