2015-08-13 8 views
13

Ich benutze MailKit, um einige Nachrichten von einem GMail-Konto zu lesen. Funktioniert großartig, aber wenn meine Anwendung eine Nachricht gelesen hat, möchte ich die Nachricht als gelesen markieren und diesen Status in Google Mail speichern. Ist das mit MailKit möglich? Ich habe noch nichts darüber gefunden.Wie kann ich eine Nachricht in MailKit als gelesen markieren

Mit freundlichen Grüßen René

Antwort

32

Die Möglichkeit, Nachrichten zu markieren, wie das IMAP-Protokoll lesen verwendet, ist die \Seen Flagge auf der Nachricht zu setzen (s).

Um dies mit MailKit zu tun, müssen Sie zuerst entweder die Indexe oder die UIDs der Nachrichten kennen, die Sie setzen möchten, die Sie das \Seen-Flag aktivieren möchten. Sobald Sie diese Informationen haben, möchten Sie eine der AddFlags() Methoden auf der ImapFolder aufrufen. Zum Beispiel:

folder.AddFlags (uids, MessageFlags.Seen, true); 

Um Nachrichten als ungelesen zu markieren, würden Sie entfernen die \Seen Flagge, etwa so:

folder.RemoveFlags (uids, MessageFlags.Seen, true); 
+0

Die RemoveFlags Funktion scheint keine Wirkung zu haben. Könnten Sie bitte Ihre Antwort ändern, um auch die Verbindung zum Server einzuschließen? –

+5

Stellen Sie sicher, dass Sie den Ordner im Modus 'FolderAccess.ReadWrite' öffnen. – jstedfast

+0

Danke. Funktioniert jetzt perfekt. –