使用Python读取邮件
我该如何用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 个回答
1
这个错误的意思是你要连接的主机无法访问或者根本不存在。你可以通过在网上搜索“gaierror”来了解更多,它的意思是获取地址信息出错。
可以试试用“imap.gmail.com:993”这个地址,具体的说明可以在这里找到。
13
有三个问题:
- 主机名应该是
imap.gmail.com
,而不是imap4.gmail.com
- IMAP4的构造函数需要两个参数:主机和端口(不是用冒号分开的)
- Gmail希望你使用SSL进行连接
所以:
import imaplib
M = imaplib.IMAP4_SSL("imap.gmail.com", 993)