只是大多時候,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 跑此程式不要用自己還有正在使用的正常信箱,請用測試的]
沒有留言:
張貼留言