pop有兩種常見的身份驗證模式
1. username/password
2. APOP
先看第1種
可分三步驟:
1.create POP3 object,要傳remote host (& port) 作為參數
2.呼叫POP3Object.user(user) & POP3Object.pass_(passwd)
分別傳送名稱及密碼來進行驗證
3.如果驗證不通過,會有poplib.error_proto的例外;如果沒有例外,
則可以呼叫POP3Object.stat(),會回傳tuple。裏面分別是inbox
中有多少message & 總共message大小。
4.最後POP3Object.quit()來中斷連線。
程式不大,直接貼上。
#!/usr/bin/env python
import getpass, poplib, sys
(host, user) = sys.argv[1:]
passwd = getpass.getpass()
p = poplib.POP3(host)
try:
p.user(user)
p.pass_(passwd)
except poplib.error_proto, e:
print "Login failed:", e
sys.exit(1)
status = p.stat()
print "Mailbox has %d messages for a total of %d bytes" % (status[0], status[1])
p.quit()
Note:
1.此程式不會對mailbox進行download或修改的動作,但是有些server還是會在一登入之後直接把信標示為已讀。
2.APOP會在驗證時候進行加密,減少sniff的風險
3.一旦login成功,server就會lock mailbox直到quit()為止。期間不會有mail送入,或是其他修改動作。
沒有留言:
張貼留言