Python 및 imaplib 사용 2 개의 imap 서버 (gmail)에 연결하고 해당 날짜의 날짜를 사용하여 전자 메일을 일치 시키려고합니다.다른 이메일의 구문 분석 날짜를 사용하여 imap 검색
2 가지 문제가 있습니다.
- 헤더를 구문 분석하여 반환 된 날짜는 검색에 직접 사용할 수 없으며 형식이 잘못되었습니다.
- 헤더를 구문 분석하여 반환 된 날짜와 시간으로 검색하는 데 사용할 imap 검색이 명확하지 않습니다.
나는 올드 메일과 뉴 메일의 imap 연결을 가지고 있습니다.
NewMail.select("[Gmail]/All Mail", readonly=True)
OldMail.select("[Gmail]/All Mail")
그냥 임의의 이메일 "6001"
typ, msg = NewMail.fetch('6001', '(BODY[HEADER])')
parser = HeaderParser()
pmsg = parser.parsestr(msg[0][1])
>>> pmsg['Date']
'Tue, 28 Dec 2010 21:56:00 -0700'
을 선택하지만이처럼 사용할 수있는 권리 편대에없는, :-) 쉬운 방법 기분이 언짢아이
searchfor = '(ON "' + pmsg['Date'] + '")'
>>> searchfor
'(ON "Tue, 28 Dec 2010 21:56:00 -0700")'
OldMail.search(None, searchfor)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/imaplib.py", line 620, in search
typ, dat = self._simple_command(name, *criteria)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/imaplib.py", line 1060, in _simple_command
return self._command_complete(name, self._command(name, *args))
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/imaplib.py", line 895, in _command_complete
raise self.error('%s command error: %s %s' % (name, typ, data))
error: SEARCH command error: BAD ['Could not parse command']
내 목표는 Google 마이 그 레이션 앱을 사용하여 전송이 실패한 후 2 대의 서버간에 일치하는 이메일을 찾는 것입니다. 그런 다음 이전 서버에있는 이메일을 삭제하십시오. 이것을하는 더 좋은 방법을 제안 할 수 있다면 도움이 될 것입니다.