public override void Parse(string Tag, string Data) { base.Parse(Tag, Data); this.IsUIDCommand = false; string messageIDs = Data.Substring(0, Data.IndexOf(' ')); string fetchListStr = Data.Substring(Data.IndexOf(' ') + 1); this.MessageID = new MessageIDList(messageIDs); this.fetchData = new FetchDataList(fetchListStr); }
private FetchResponse Fetch(MailMessage mail, FetchDataList fetchDataList) { FetchResponse response = new FetchResponse(mail.SequenceNumber); FetchDataItem body = null; foreach (var data in fetchDataList) { switch (data) { case FetchDataItemType.All: break; case FetchDataItemType.Body: if (body == null) { body = CreateMailBodyDataItem(mail); } break; case FetchDataItemType.BodyPeek: if (body == null) { body = CreateMailBodyDataItem(mail); } break; case FetchDataItemType.BodyStructure: break; case FetchDataItemType.Envelope: break; case FetchDataItemType.Fast: break; case FetchDataItemType.Flags: response.Items.Add(new FetchDataItem(FetchDataItemType.Flags, CreateFlaggedString(mail))); break; case FetchDataItemType.Full: break; case FetchDataItemType.InternalDate: response.Items.Add( new FetchDataItem( FetchDataItemType.InternalDate, string.Format("\"{0:d-MMM-yyyy HH:mm:ss} {1}\"", mail.Timestamp, mail.Timestamp.ToString("zzz").Replace(":", "")) ) ); break; case FetchDataItemType.Rfc822: break; case FetchDataItemType.Rfc822Header: break; case FetchDataItemType.Rfc822Size: response.Items.Add(new FetchDataItem(FetchDataItemType.Rfc822Size, mail.Size.ToString())); break; case FetchDataItemType.Rfc822Text: break; case FetchDataItemType.Uid: response.Items.Add(new FetchDataItem(FetchDataItemType.Uid, mail.Uid.ToString())); break; default: break; } } //put the BODY[] item to the last if (body != null) { response.Items.Add(body); } return(response); }