6

私のコードは次のとおりです。

 using (ImapClient client = new ImapClient())
 {
     // Connect to the server and authentication and then 
     var inbox = client.Inbox;
     inbox.Open(FolderAccess.ReadOnly);
     int messageCount = inbox.Count - 1;
     for (int i = messageCount; i > 0 ; i--)
     {
           var visitor = new HtmlPreviewVisitor();
           MimeMessage message = inbox.GetMessage(i);
           message.Accept(visitor);
           // how can get uid for this message
     }
 }

uid を保存したい。メッセージの uid を取得するにはどうすればよいですか?

MimeMessage message =inbox.GetMessage(UniqueId.Parse(uid));
4

1 に答える 1

15

MailKit を使用して特定のメッセージの UID を取得するFetch()方法は、ImapFolderインスタンスでメソッドを使用し、それにMessageSummaryItem.UniqueId列挙値を渡すことです。

通常、次のように、実際のメッセージを取得する前に、フォルダー内のメッセージの UID を取得する必要があります。

// fetch some useful metadata about each message in the folder...
var items = folder.Fetch (0, -1, MessageSummaryItems.UniqueId | MessageSummaryItems.Size | MessageSummaryItems.Flags);

// iterate over all of the messages and fetch them by UID
foreach (var item in items) {
    var message = folder.GetMessage (item.UniqueId);

    Console.WriteLine ("The message is {0} bytes long", item.Size.Value);
    Console.WriteLine ("The message has the following flags set: {0}", item.Flags.Value);
}

には、、、などのFlagsものが含まれます。フラグは、メッセージがユーザーによって「重要」としてフラグ付けされたことを意味します。SeenDeletedAnsweredFlagged

于 2016-05-02T15:38:21.553 に答える