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号