首页 > Python网络编程 阅读数:4

Python imaplib模块:邮件读取IMAP协议

IMAP(Internet Message Access Protocol)是另一种读取电子邮件的协议。IMAP 是读取邮件服务器的电子邮件与公布栏信息的方法,也就是说,IMAP 允许客户端的邮件程序存取远程的信息。

Python 的 maplib 模块提供 IMAP 协议的客户端接口。imaplib 模块定义一个 IMAP4 类,用于创建一个 IMAP 连接。IMAP4 类的语法如下:

class IMAP4([host [, port]])

其中,host 是主机名称;port 的默认值是 163。
  • IMAP4 类的实例变量的方法列表如下:
  • fetch(message_set, message_parts):取出信息。
  • login(user, password):登录 IMAP4 服务器。
  • logout():注销 IMAP4 服务器,关闭连接。
  • search(charset, criterium [, ...]):搜索邮件信箱找出符合的信息。
  • select([mailbox [, readonly]]):选择一个邮件信箱。

下面的示例取出 IMAP 服务器 imap.dummy.com 内的所有邮件信箱信息。
使用imaplib模块。
#imap协议
import imaplib, getpass, string
host = "imap.dummy .com"
user ="jonny"
pwd = getpass .getpass ()
msgserver = imaplib. IMAP4 (host)
msgserver.login (user, pwd)
msgserver.select()
msgtyp, msgitems = msgserver.search (None, "ALL")
for idx in string.split(msgitems[0]) :
    msgtyp, msgitems = msgserver.fetch(idx, "(RFC822) ")
    print ("Message is %s\n" %msgtyp)
    print ("---------------\n")
    print ("Content: %s" %msgitems[0] [1])
msgserver.logout ()