protected List <MessageRec> EnumerateMessagesOnPopConnection(int maxItems) { if (this.FolderId != PopMailbox.InboxEntryId) { return(new List <MessageRec>(0)); } Pop3ResultData uniqueIds = this.Mailbox.PopConnection.GetUniqueIds(); if (uniqueIds == null) { return(new List <MessageRec>()); } return(this.GetMessageRecs(uniqueIds, null, maxItems)); }
protected List <MessageRec> EnumerateMessagesOnPopConnection(List <string> uids) { if (this.FolderId != PopMailbox.InboxEntryId) { return(new List <MessageRec>(0)); } if (uids == null || uids.Count == 0) { return(new List <MessageRec>(0)); } Pop3ResultData uniqueIds = this.Mailbox.PopConnection.GetUniqueIds(); if (uniqueIds == null) { return(new List <MessageRec>(0)); } return(this.GetMessageRecs(uniqueIds, uids, 0)); }
private void UpdateMessageMap() { base.UniqueIdMap.Clear(); Pop3ResultData uniqueIds = base.PopConnection.GetUniqueIds(); if (uniqueIds == null) { return; } for (int i = 1; i <= uniqueIds.EmailDropCount; i++) { string uniqueId = uniqueIds.GetUniqueId(i); if (uniqueId != null) { base.UniqueIdMap[uniqueId] = i; } } }
private void FetchMessage(string messageUid, out Stream mimeStream, out ExDateTime?internalDate) { base.CheckDisposed(); internalDate = null; mimeStream = null; if (!base.UniqueIdMap.ContainsKey(messageUid)) { this.UpdateMessageMap(); } if (!base.UniqueIdMap.ContainsKey(messageUid)) { return; } Pop3ResultData email = base.PopConnection.GetEmail(base.UniqueIdMap[messageUid]); if (email.Email == null || email.Email.MimeStream == null) { throw new UnableToFetchMimeStreamException(messageUid); } mimeStream = email.Email.MimeStream; }
private List <MessageRec> GetMessageRecs(Pop3ResultData result, List <string> uids, int maxItems = 0) { bool flag = uids == null || uids.Count == 0; List <MessageRec> list = new List <MessageRec>(); int num = result.EmailDropCount; while (num > 1 && (maxItems == 0 || list.Count < maxItems)) { string uniqueId = result.GetUniqueId(num); if (uniqueId != null) { this.Mailbox.UniqueIdMap[uniqueId] = num; if (flag || uids.Contains(uniqueId)) { long emailSize = result.GetEmailSize(num); list.Add(this.CreateMessageRec(uniqueId, emailSize)); } } num--; } return(list); }