private IEnumerable <ImapMessageRec> EnumerateMessagesInfoFromImapServer(ImapConnection imapConnection, EnumerateMessagesParams enumerateParams) { if (enumerateParams.LowFetchValue > enumerateParams.HighFetchValue) { return(new List <ImapMessageRec>(0)); } ImapResultData messageInfoByRange = imapConnection.GetMessageInfoByRange(enumerateParams.LowFetchValue.ToString(CultureInfo.InvariantCulture), enumerateParams.HighFetchValue.ToString(CultureInfo.InvariantCulture), enumerateParams.FetchMessagesFlags.HasFlag(FetchMessagesFlags.FetchByUid), enumerateParams.FetchMessagesFlags.HasFlag(FetchMessagesFlags.IncludeExtendedData) ? ImapConnection.MessageInfoDataItemsForNewMessages : ImapConnection.MessageInfoDataItemsForChangesOnly); return(this.GetImapMessageRecsFromResultData(messageInfoByRange, enumerateParams.FetchMessagesFlags)); }
public static List <ImapMessageRec> FromImapResultData(ImapResultData resultData) { IList <string> messageUids = resultData.MessageUids; List <ImapMessageRec> list = new List <ImapMessageRec>(messageUids.Count); for (int i = 0; i < messageUids.Count; i++) { list.Add(new ImapMessageRec(resultData.MessageUids[i], resultData.MessageFlags[i])); } return(list); }
public static List <ImapMessageRec> FromImapResultData(ImapMailbox folder, ImapResultData resultData) { IList <string> messageUids = resultData.MessageUids; List <ImapMessageRec> list = new List <ImapMessageRec>(messageUids.Count); for (int i = 0; i < messageUids.Count; i++) { list.Add(new ImapExtendedMessageRec(folder, resultData.MessageUids[i], resultData.MessageIds[i], resultData.MessageFlags[i], resultData.MessageSizes[i], resultData.MessageSeqNums[i])); } return(list); }
private void FetchMessage(string messageUid, out Stream mimeStream, out ExDateTime?internalDate) { base.CheckDisposed(); internalDate = null; mimeStream = null; ImapResultData messageItemByUid = base.ImapConnection.GetMessageItemByUid(messageUid, ImapConnection.MessageBodyDataItems); if (messageItemByUid.MessageStream == null) { throw new UnableToFetchMimeStreamException(messageUid); } mimeStream = messageItemByUid.MessageStream; internalDate = ((messageItemByUid.MessageInternalDates != null && messageItemByUid.MessageInternalDates.Count == 1) ? messageItemByUid.MessageInternalDates[0] : null); }
private IEnumerable <ImapMessageRec> GetImapMessageRecsFromResultData(ImapResultData resultData, FetchMessagesFlags fetchFlags) { IList <string> messageUids = resultData.MessageUids; IList <ImapMailFlags> messageFlags = resultData.MessageFlags; bool flag = messageUids != null && messageUids.Count > 0 && messageFlags != null && messageFlags.Count > 0; if (!flag) { return(new List <ImapMessageRec>(0)); } if (fetchFlags.HasFlag(FetchMessagesFlags.IncludeExtendedData)) { return(ImapExtendedMessageRec.FromImapResultData(this.folder, resultData)); } return(ImapMessageRec.FromImapResultData(resultData)); }
private IEnumerable <ImapMessageRec> LookupMessagesInfoFromImapServer(ImapConnection imapConnection, LookupMessagesParams lookupParams) { ImapResultData messageInfoByRange = imapConnection.GetMessageInfoByRange(lookupParams.GetUidFetchString(), null, lookupParams.FetchMessagesFlags.HasFlag(FetchMessagesFlags.FetchByUid), lookupParams.FetchMessagesFlags.HasFlag(FetchMessagesFlags.IncludeExtendedData) ? ImapConnection.MessageInfoDataItemsForNewMessages : ImapConnection.MessageInfoDataItemsForChangesOnly); return(this.GetImapMessageRecsFromResultData(messageInfoByRange, lookupParams.FetchMessagesFlags)); }