난은 imaplib 통해 Gmail에 저장 내 이메일에 액세스 할 수 있습니다Gmail에서 IMAP을 통해 파이썬을 사용하여 모든 이메일에 액세스하는 방법은 무엇입니까? 다음과 같이
import imaplib
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login(username, password)
mail.select(mailbox='INBOX', readonly=True)
_, data = mail.search(None, '(ALL)')
그러나 data
만 1790 가장 최근의 이메일이 포함되어 있습니다. 내가 메일 번호를 반복 할 때, data
1790 위의 ID에 대한 None
은 다음과 같습니다
for i in itertools.count(start=1):
_, data = mail.fetch(str(i), "RFC822")
파이썬 통해 Gmail에 내 모든 이메일에 액세스 할 수?
"in:anywhere after:2014-01-01 before:2014-01-02"
을하지만 파이썬은 이러한 쿼리를 구문 분석 할 수 없습니다 :
Gmail의 webinterface에서이 같은 범위 쿼리를 검색 할 수 있습니다
_, data = mail.search(None, '(ALL "in:anywhere")')
File "/usr/local/lib/python3.4/imaplib.py", line 660, in search
typ, dat = self._simple_command(name, *criteria)
File "/usr/local/lib/python3.4/imaplib.py", line 1134, in _simple_command
return self._command_complete(name, self._command(name, *args))
File "/usr/local/lib/python3.4/imaplib.py", line 965, in _command_complete
raise self.error('%s command error: %s %s' % (name, typ, data))
imaplib.error: SEARCH command error: BAD [b'Could not parse command']
범위 쿼리가 according to the docs on Gmail's IMAP extensions 같은 다소 이론적 작업에서 작동합니다. 그러나 나는 search for a range of dates as in RFC 3501, 나는 그 시간 내에 전송 된 메시지를받을 때
_, data = mail.search(None, '(SINCE "01-Jan-2011" BEFORE "01-Jan-2012")')
이 그 같이 API를 (https://developers.google.com/gmail/api/) –
시도 :
모든 IMAP 폴더를 가져 목록 기능이 있습니다 사이트 상태, IMAP은 "본격적인"것이어야합니다. 어쩌면 표준 라이브러리의 것보다 다른 imap 클라이언트를 사용해야 할 수도 있습니다. – Bengt
당신은 왜 그것을 부셔 버리지 않습니까? 1700을 모으고 날짜를보고 그 날짜부터 다음 1700 끝까지 수집합니까? 아니면 한 번에 한 달에 한 달 씩 할 수 있습니까? –