2016-04-28 4 views
3

私のコードは次のとおりです。私はUIDを保存するためにワンドメールキットでuidを取得するには?

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を取得できますか?

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

これはどのパッケージが使用していますか? 'MimeMessage'は標準のC#ではないようですので、' use'セクションを追加して、クラスがどこから来るのかを知ることができます。 – Draken

+0

MimeKit、MailKit、MailKit.Net.Imapを追加してください。 – shahroz

+0

クラス文書を見ると、そのタイプのものは何も表示されません: http://www.mimekit.net/docs/html/T_MimeKit_MimeMessage.htm、私が見ることのできる最も近いものはプロパティ 'MessageId'です。それはあなたが探しているものですか?もしそうでなければ、あなたは何のために 'uid'を必要としますか? – Draken

答えて

7

MailKitを使用して、特定のメッセージのUIDを取得する方法はImapFolderインスタンスでFetch()方法を使用し、それに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は、SeenDeletedのようなものを含んでいますAnsweredなどである。Flaggedフラグは、メッセージがユーザによって「重要」とフラグされていることを意味する。

1

あなたのコメントに行く、私はあなたがこのような何かをしたいと思う:

public class MyMessage{ 
    public Guid uid {get; private set;} 
    public MimeMessage message {get; private set;} 

    public MyMessage(MimeMessage message){ 
     this.uid = Guid.NewGuid(); 
     this.message = message 
    } 
} 

次に、あなたのリストにこれを使用することができますし、ユーザーがそれを選択したとき、あなたはとの適切なメッセージを返すことができます正しいGUID

関連する問題