Esempio n. 1
0
        public IEnumerable<MailMessage> GetMessages(IEnumerable<uint> uids, ExaminePart callback, bool seen = false, string mailbox = null)
        {
            uids.ThrowIfNull("uids");
            List<MailMessage> list = new List<MailMessage>();
            foreach (uint uid in uids)
            {
                list.Add(GetMessage(uid, callback, seen, mailbox));
            }

            return list;
        }
Esempio n. 2
0
        public MailMessage GetMessage(uint uid, ExaminePart callback, bool seen = false, string mailbox = null)
        {
            AssertValid();
            callback.ThrowIfNull("callback");
            lock (sequenceLock)
            {
                PauseIdling();
                SelectMailbox(mailbox);
                string header = GetMailHeader(uid, seen, mailbox);
                MailMessage message = MessageBuilder.FromHeader(header);
                string structure = GetBodystructure(uid, mailbox);
                try
                {
                    Bodypart[] parts = Bodystructure.Parse(structure);
                    foreach (Bodypart part in parts)
                    {
                        if (callback != null && callback(part) == true)
                        {
                            string content = GetBodypart(uid, part.PartNumber, seen, mailbox);
                            message.AddBodypart(part, content);
                        }
                    }
                }
                catch (FormatException)
                {
                    throw new BadServerResponseException("The server returned an erroneous " +
                        "body structure:" + structure);
                }

                ResumeIdling();
                return message;
            }
        }