чтение почты с использованием Python - PullRequest
4 голосов
/ 01 декабря 2009

как мне читать почту из моего почтового ящика, используя 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 ]

13 голосов
/ 01 декабря 2009

Три вопроса:

  1. Имя хоста imap.gmail.com, а не imap4.gmail.com
  2. Конструктор IMAP4 принимает два параметра: хост и порт (без двоеточия)
  3. Gmail ожидает, что вы говорите по SSL

Итак:

import imaplib
M = imaplib.IMAP4_SSL("imap.gmail.com", 993)
1 голос
/ 01 декабря 2009

Ошибка означает, что хост недоступен или не существует, что вы можете узнать, прибегнув к поиску gaierror (это означает ошибку получения информации о адресе).

Попробуйте вместо этого "imap.gmail.com:993", как описано здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...