2014-05-15 2 views
7

Mailkit (https://github.com/jstedfast/MailKit)을 사용하여 imap을 통해 Google 애플리케이션에 연결하고 있는데 어떻게 하나의 메시지를 삭제할 수 있습니까? (휴지통으로 옮겨서받은 편지는 그냥받은 편지함에서 꺼내야합니다.)MailKit Gmail에서 단일 메시지 삭제

지금까지 메시지 본문의 링크를 연결하고 다운로드하고 파싱 했으므로 필요한 조치가 필요합니다. .!

감사

+0

을 당신은 단지 하나의 메시지를 다운로드 할 필요가 있지만, 나는 ([여기] 대량 메시지를 삭제 완벽하게 작동 MailKit 예를 https://github.com/arthurspa/ DeleteEmailMessages). 단일 메시지를 삭제하는 것은 비슷합니다. –

답변

14

는 IMAP 서버의 폴더에서 메시지를 삭제하려면, 이것은 당신이해야 할 모든 것입니다 :

client.Inbox.AddFlags (new int[] { index }, MessageFlags.Deleted); 

또는

client.Inbox.AddFlags (new UniqueId[] { uid }, MessageFlags.Deleted); 

이제 메시지가 서버에서 \ Deleted로 표시됩니다.

그런 다음 호출하여 모든 삭제 된 항목 폴더를 제거 할 수 있습니다 : 당신이 할 수있는

client.Inbox.Expunge(); 

을 대신 인덱스의의 UID를 사용하고 있으며 IMAP 서버가 UIDPLUS 확장합니다 (client.Capabilities을 확인)를 지원하는 경우 이 같은 메시지의 단지 선택 세트를 영구 삭제 :

if (client.Capabilities.HasFlag (ImapCapabilities.UidPlus)) 
    client.Inbox.Expunge (new UniqueId[] { uid });