나는 내 이메일에서 messege를 삭제하려면이 코드를 사용하여 messege를 삭제할 수 없습니다 :은은 imaplib
mail.store(id, '+FLAGS', '\\Deleted')
mail.expunge()
그리고이 코드는 '확인'을 반환합니다.
을하지만 난 여전히 캔트 messeges을 삭제 : 나는 또한 내 Gmail ACOUNT에서 설정을 변경
('OK'[없음]) 할 수 없습니다. 왜 그럴까요?
나는 내 이메일에서 messege를 삭제하려면이 코드를 사용하여 messege를 삭제할 수 없습니다 :은은 imaplib
mail.store(id, '+FLAGS', '\\Deleted')
mail.expunge()
그리고이 코드는 '확인'을 반환합니다.
을하지만 난 여전히 캔트 messeges을 삭제 : 나는 또한 내 Gmail ACOUNT에서 설정을 변경
('OK'[없음]) 할 수 없습니다. 왜 그럴까요?
'메시지 시퀀스 번호'(MSN, 'fake ids')와 '고유 ID'('실제 ID'라고하는 UID)를 혼합합니다.
어디서나 UID를 사용하는 것이 더 편리합니다. MSN 및 UID 버전 모두에서 제공되는 명령은 FETCH 대 UID FETCH, SEARCH 대 UID SEARCH, STORE 대 UID STORE가 있습니다. 일관성이 있어야하지만 그렇지 않으면 동일하게 작동합니다. 특히, Gmail의 삭제에 관한
email.uid('STORE', id, '+FLAGS', '(\\Deleted)')
email.expunge()
: 당신이 UID 검색을 사용하는 경우
그래서, 당신은 UID 스토어를 사용해야합니다 삭제에 대한 사용자 설정에도 불구하고, 나는 항상 바로 '받은 편지함'제거 발견 레이블 (또는 귀하가 들어간 폴더)을 클릭하면 모든 메일 폴더 또는 이와 동등한 폴더에 보관됩니다. 사용자의 휴지통 폴더에
(UID) MOVE
, 또는 (UID) COPY
및 삭제의 조합을 사용하여 다음나는 내 문제를 풀었지만, 누군가가이 대답에 다른 대답으로 응답하면 행복하다는 것을 알게되었다. 내가 삭제할 messege의 ID를 검색했을 때 나는 'uid'기능을 사용하고 실제 UID를 얻었습니다 (예를 들어, 500 개의 messeges가 있고 모두 삭제 된 경우, 다음에받는 메시지는 501입니다.받은 편지함에 messege가 하나만있는 경우에도 마찬가지입니다). 그래서 사용하는 대신 :
email.uids('search', 'ALL')
내가 사용 :
email.search(None, 'ALL')
내가 messege를 삭제하면, 나는 진짜 ID를 사용하는 데 필요한. 예를 들어, 501 messege는 "가짜 ID"(또는 실제 ... 그것을 보려고하는 방식을 봅니다.) 다음 1은 2가됩니다.
그래서 대신 501 messege id를 삭제하면, 나는 1 messege id를 위해 그것을 수행했다.
그러나 질문은 올라와 있습니다 : 왜 messeges 가져 오기 (그리고 난 '진짜 ID'를 사용해야합니다) 및 삭제 (그리고 난 '진짜 ID'를 사용해야합니다) 사이에 차이가 있습니다.)
답변보기 내가 게시했습니다. – Max
감사합니다. 알아 둘만한 :) –