使用python阅读邮件

时间:2009-12-01 18:03:47

标签: python email gmail imap

如何使用python从我的邮箱中读取邮件?

import getpass, imaplib
M = imaplib.IMAP4('IMAP4.gmail.com:993')
M.login(getpass.getuser(), getpass.getpass())
M.select()
typ, data = M.search(None, 'ALL')
for num in data[0].split():
    typ, data = M.fetch(num, '(RFC822)')
    print 'Message %s\n%s\n' % (num, data[0][1])
M.close()
M.logout()

这是我的代码.. 但是当我执行它的抛出错误时:

Traceback (most recent call last):
  File "E:/jagdish/python progs/readmail.py", line 2, in <module>
    M = imaplib.IMAP4('IMAP4.gmail.com:993')
  File "C:\Python25\lib\imaplib.py", line 163, in __init__
    self.open(host, port)
  File "C:\Python25\lib\imaplib.py", line 230, in open
    self.sock.connect((host, port))
  File "<string>", line 1, in connect
gaierror: (11001, 'getaddrinfo failed')

任何人都可以帮我这个吗?

2 个答案:

答案 0 :(得分:13)

三个问题:

  1. 主机名为imap.gmail.com,而非imap4.gmail.com
  2. IMAP4构造函数有两个参数:主机和端口(不是冒号分隔的)
  3. Gmail希望您说的是SSL
  4. 所以:

    import imaplib
    M = imaplib.IMAP4_SSL("imap.gmail.com", 993)
    

答案 1 :(得分:1)

错误意味着主机无法访问或不存在,您可以通过Google搜索“gaierror”找到它(它代表获取地址信息错误)。

尝试使用“imap.gmail.com:993”,如here所述。