星期三, 7月 15, 2009

POP3 in Python - 4 (Deleting Message)

呼叫POP3Object.dele(msgnum)就可以刪除指定的信件了。

只是大多時候,server會等到呼叫quit()時才正式把信件刪除,


mblist = p.list()[1]
dellist = []

for item in mblist:
number, octets = item.split(' ')
log("Downloading message %s (%s bytes)...\n" % (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")
dellist.append(number)


在此先用一個dellist把所有要刪的存入

在這裡進行刪除:

counter = 0

for number in dellist:
counter += 1
log("Deleting message %d of %d...\n" % (counter, len(dellist)))
p.dele(number)


最後呼叫quit()就可以順利刪除了。

來看看程式的output:

cacaegg@cacabook:~/workspace/NetworkProgram/src/POP$ ./down-and-del.py mx.mgt.ncu.edu.tw cacaegg testbox
Password:
Connecting to mx.mgt.ncu.edu.tw...
Logging on...Success.
Scanning INBOX... 2 messages.
Downloading message 1 (2467 bytes)...
Downloading message 2 (2468 bytes)...
Deleting message 1 of 2...
Deleting message 2 of 2...
Successfully deleted 2 messages from server.
Closing connection... done.



附件:程式連結
[P.S 跑此程式不要用自己還有正在使用的正常信箱,請用測試的]

沒有留言: