Example #1
0
        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));
        }
Example #2
0
        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;
        }
Example #5
0
        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);
        }