POP(Post Office Post),郵局協議,采用C/S工作模式,讀取電子郵件的過程是先利用DNS協議解析POP服務器的IP地址,並連接服務器,使用USER命令將密碼傳入POP服務器,使用PASS命令將密碼傳入POP服務器,這個過程完成後,就完成了POP服務器認證,接下來可以對郵箱內的郵件做進一步的操作,python中的poplib庫提供了許多方法,如stat,list等,這些方法可以查看郵箱內的郵件數量,大小,下載其中的郵件等。
用Python連接和認證一個遠程服務器並讀取郵件,需要先建立一個POP3對象,傳入服務器的主機名和端口號,使用user()和pass_()方法來發送用戶名和密碼,使用stat()方法獲取郵件列表,使用list()方法顯示郵件的信息。
下面是程序:
#!/usr/bin/env python
import sys,poplib,getpass,email
(host,user,file)=sys.argv[1:]
passwd =getpass.getpass()
p=poplib.POP3(host)
fd=open(file,"at")
try:
p.user(user)
p.pass_(passwd)
except poplib.error_proto,e:
print "failed to login in"
sys.exit(-1)
mail=p.stat()
print “There’re %d messages and the total size if %d bytes” %(mail[0],mail[1])
for item in p.list()[1]:
number,bytes=item.split(' ')
lines=p.retr(number)[1]
msg=email.message_from_string("\n".join(lines))
fd.write(msg.as_string(unixfrom=1))
fd.write('\n')
p.quit()
fd.close()
Ubuntu環境運行上面的程序,會在當前目錄生成一個文件,用cat命令就可以查看郵件內容了。
Python 的詳細介紹:請點這裡
Python 的下載地址:請點這裡