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; }
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; } }