2009-12-01 3 views
4

어떻게 파이썬을 사용하여 메일 상자에서 메일을 읽습니까 ??파이썬을 사용하여 메일 읽기

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') 

이 사람이 나를 도울 수를 ???

답변

13

세 가지 문제 :

  1. 호스트 이름은, imap.gmail.com하지 imap4.gmail.com
  2. IMAP4 생성자는 두 개의 매개 변수를 취 호스트와 포트 (안 콜론으로 구분)
  3. Gmail에서 SSL을 얘기 할 것으로 예상

그래서 :

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

답변입니다. Gmail은 귀하가 SSL을 사용하고 있다고 생각합니다. SimonJ와 같이 IMAP4_SSL() 함수를 사용하십시오. Gmail을 사용하여 POP3를 사용하여 최근에이 작업을 수행했습니다. IMAP은 동일해야합니다. – hughdbrown

+0

안녕하세요. 작동 .. – Jagdish

+0

기본 ssl 포트가 993이므로 다음과 같이 작성할 수 있습니다.'M = imaplib.IMAP4_SSL ("imap.gmail.com")' – Caumons

1

오류는 호스트가 도달 할 수 없거나 존재하지 않는다는 것을 의미합니다. 'gaierror'로 검색하면 알 수 있습니다 (주소 정보 오류가 발생 함).

대신 here과 같이 "imap.gmail.com:993"을 사용해보세요.