โมดูล poplib จาก Standard Library ของ Python กำหนดคลาส POP3 และ POP3_SSL คลาส POP3 บรรจุการเชื่อมต่อกับ POP3 Server และนำโปรโตคอลตาม RFC 1939 ไปใช้งาน คลาส POP3_SSL รองรับ POP3 Server ที่ใช้ SSL เป็นโปรโตคอลชั้นล่าง
โปรโตคอล POP3 ล้าสมัยแล้ว เนื่องจากคุณภาพการนำไปใช้ของ POP3 Server ค่อนข้างแย่ หาก Mail Server รองรับ IMAP แนะนำให้ใช้ imaplib.IMAP4 แทน
เมธอดหลักของ POP3 และ POP3_SSL
| เมธอด | คำอธิบาย |
|---|---|
getwelcome() | คืน Greeting String จาก POP3 Server |
user(username) | ส่งคำสั่ง USER ตอบกลับควรระบุว่าต้องการ Password |
pass_(password) | ส่ง Password |
stat() | ดูสถานะ Mailbox คืน 2 จำนวนเต็ม: (จำนวนข้อความ, ขนาด Mailbox) |
list() | ขอรายการข้อความ ผลลัพธ์เป็น (response, ['mesg_num octets', ...], octets) |
retr() | ดึงข้อความตาม Index ที่ระบุ และตั้ง Flag ว่าอ่านแล้ว |
dele() | ตั้ง Flag ให้ข้อความหมายเลขนั้นเพื่อลบ |
top() | ดึง Header ของข้อความ บวกจำนวนบรรทัดหลัง Header |
quit() | Sign off: Commit การเปลี่ยนแปลง, Unlock Mailbox, ตัดการเชื่อมต่อ |
ตัวอย่าง: ดึงอีเมลที่ยังไม่อ่านจาก Gmail POP Server
import poplib
box = poplib.POP3_SSL('pop.googlemail.com', '995')
box.user("YourGmailUserName")
box.pass_('YourPassword')
N = len(box.list()[1])
for i in range(N):
for msg in box.retr(i+1)[1]:
print(msg)
box.quit()
หมายเหตุ: ก่อนรันสคริปต์ ต้องตั้งค่า Gmail Account ให้อนุญาต Less Secure Apps