// Token: 0x06000017 RID: 23 RVA: 0x00002920 File Offset: 0x00000B20 internal void ResetAsUidStore(string newCommandId, string uid, ImapMailFlags flags, bool addFlags) { this.Reset(ImapCommandType.Store, newCommandId, delegate(ImapCommand cmd) { StringBuilder cachedStringBuilder = cmd.CachedStringBuilder; cachedStringBuilder.Length = 0; cachedStringBuilder.Append(cmd.CommandId); cachedStringBuilder.Append(" UID STORE "); cachedStringBuilder.Append((string)cmd.CommandParameters[0]); if (addFlags) { cachedStringBuilder.Append(" +FLAGS.SILENT "); } else { cachedStringBuilder.Append(" -FLAGS.SILENT "); } ImapUtilities.AppendStringBuilderImapFlags((ImapMailFlags)cmd.CommandParameters[1], cachedStringBuilder); cachedStringBuilder.Append("\r\n"); return(cachedStringBuilder.ToString()); }, new object[] { uid, flags }); }
internal static SyncEmailContext GetSyncEmailContext(ImapClientFolder folder, ImapMessageRec messageRec) { ArgumentValidator.ThrowIfNull("folder", folder); ArgumentValidator.ThrowIfNull("messageRec", messageRec); SyncEmailContext result = default(SyncEmailContext); ImapMailFlags imapMailFlags = messageRec.ImapMailFlags; ImapMailFlags imapMailFlags2 = folder.SupportedFlags; if (folder.DefaultFolderType.Equals(ImapDefaultFolderType.Drafts)) { imapMailFlags |= ImapMailFlags.Draft; imapMailFlags2 |= ImapMailFlags.Draft; } if (imapMailFlags2.HasFlag(ImapMailFlags.Draft)) { result.IsDraft = new bool?(imapMailFlags.HasFlag(ImapMailFlags.Draft)); } if (imapMailFlags2.HasFlag(ImapMailFlags.Seen)) { result.IsRead = new bool?(imapMailFlags.HasFlag(ImapMailFlags.Seen)); } if (imapMailFlags2.HasFlag(ImapMailFlags.Answered)) { result.ResponseType = new SyncMessageResponseType?(imapMailFlags.HasFlag(ImapMailFlags.Answered) ? SyncMessageResponseType.Replied : SyncMessageResponseType.None); } ImapExtendedMessageRec imapExtendedMessageRec = messageRec as ImapExtendedMessageRec; if (imapExtendedMessageRec != null) { result.SyncMessageId = imapExtendedMessageRec.MessageId; } return(result); }
// Token: 0x06000048 RID: 72 RVA: 0x00003424 File Offset: 0x00001624 public void StoreMessageFlags(string uid, ImapMailFlags flagsToStore, ImapMailFlags previousFlags) { base.CheckDisposed(); this.ThrowIfNotConnected(); AsyncOperationResult <DBNull> asyncOperationResult = ImapConnectionCore.StoreMessageFlags(this.ConnectionContext, uid, flagsToStore, previousFlags, null, null); this.ThrowIfExceptionNotNull(asyncOperationResult.Exception); }
// Token: 0x06000046 RID: 70 RVA: 0x000033AC File Offset: 0x000015AC public string AppendMessageToImapMailbox(string mailboxName, ImapMailFlags messageFlags, Stream messageMimeStream) { base.CheckDisposed(); this.ThrowIfNotConnected(); AsyncOperationResult <string> asyncOperationResult = ImapConnectionCore.AppendMessageToImapMailbox(this.ConnectionContext, mailboxName, messageFlags, messageMimeStream, null, null); this.ThrowIfExceptionNotNull(asyncOperationResult.Exception); return(asyncOperationResult.Data); }
internal static ImapMailFlags ConvertStringFormToFlags(string stringForm) { ImapMailFlags imapMailFlags = ImapMailFlags.None; if (!string.IsNullOrEmpty(stringForm)) { string[] array = stringForm.ToUpperInvariant().Trim(new char[] { '(', ')' }).Split(new char[] { ' ' }); foreach (string text in array) { string a; if ((a = text) != null) { if (!(a == "\\ANSWERED")) { if (!(a == "\\DELETED")) { if (!(a == "\\DRAFT")) { if (!(a == "\\FLAGGED")) { if (a == "\\SEEN") { imapMailFlags |= ImapMailFlags.Seen; } } else { imapMailFlags |= ImapMailFlags.Flagged; } } else { imapMailFlags |= ImapMailFlags.Draft; } } else { imapMailFlags |= ImapMailFlags.Deleted; } } else { imapMailFlags |= ImapMailFlags.Answered; } } } } return(imapMailFlags); }
internal static ImapMailFlags FilterFlagsAgainstSupported(ImapMailFlags incomingFlags, ImapMailbox mailbox) { ImapMailFlags imapMailFlags = ImapMailFlags.All; if (mailbox != null) { imapMailFlags = mailbox.PermanentFlags; } return(incomingFlags & imapMailFlags); }
protected ImapMessageRec(string uidString, ImapMailFlags imapMailFlags) { uint uid; if (!uint.TryParse(uidString, out uid)) { throw new InvalidUidException(uidString); } this.Uid = uid; this.ImapMailFlags = imapMailFlags; }
private void SetReadFlags(byte[] messageEntryId, byte[] folderEntryId, bool isRead) { base.CheckDisposed(); using (ImapFolder folder = base.GetFolder <ImapSourceFolder>(folderEntryId)) { if (folder == null) { MrsTracer.Provider.Warning("Source folder {0} doesn't exist", new object[] { TraceUtils.DumpBytes(folderEntryId) }); throw new ImapObjectNotFoundException(TraceUtils.DumpBytes(folderEntryId)); } uint item = ImapEntryId.ParseUid(messageEntryId); List <uint> list = new List <uint>(1); list.Add(item); List <ImapMessageRec> list2 = folder.Folder.LookupMessages(base.ImapConnection, list); if (list2.Count == 0) { MrsTracer.Provider.Warning("Source message {0} doesn't exist", new object[] { TraceUtils.DumpBytes(messageEntryId) }); throw new ImapObjectNotFoundException(TraceUtils.DumpBytes(messageEntryId)); } ImapMailFlags imapMailFlags = list2[0].ImapMailFlags; ImapMailFlags imapMailFlags2 = isRead ? (imapMailFlags | ImapMailFlags.Seen) : (imapMailFlags & ~ImapMailFlags.Seen); if (imapMailFlags != imapMailFlags2) { string text = item.ToString(CultureInfo.InvariantCulture); MrsTracer.Provider.Debug("StoreMessageFlags - uid: {0}, flagsToStore: {1}, previousFlags {2}", new object[] { text, imapMailFlags2, imapMailFlags }); base.ImapConnection.StoreMessageFlags(text, imapMailFlags2, imapMailFlags); } } }
internal static void AppendStringBuilderImapFlags(ImapMailFlags flags, StringBuilder builderToUse) { builderToUse.Append('('); string value = string.Empty; if ((flags & ImapMailFlags.Answered) == ImapMailFlags.Answered) { builderToUse.Append(value); builderToUse.Append("\\Answered"); value = " "; } if ((flags & ImapMailFlags.Deleted) == ImapMailFlags.Deleted) { builderToUse.Append(value); builderToUse.Append("\\Deleted"); value = " "; } if ((flags & ImapMailFlags.Draft) == ImapMailFlags.Draft) { builderToUse.Append(value); builderToUse.Append("\\Draft"); value = " "; } if ((flags & ImapMailFlags.Flagged) == ImapMailFlags.Flagged) { builderToUse.Append(value); builderToUse.Append("\\Flagged"); value = " "; } if ((flags & ImapMailFlags.Seen) == ImapMailFlags.Seen) { builderToUse.Append(value); builderToUse.Append("\\Seen"); } builderToUse.Append(')'); }
// Token: 0x06000016 RID: 22 RVA: 0x00002824 File Offset: 0x00000A24 internal void ResetAsAppend(string newCommandId, string mailboxName, ImapMailFlags messageFlags, Stream messageBody) { this.Reset(ImapCommandType.Append, newCommandId, delegate(ImapCommand cmd) { string value = cmd.ConvertToQuotableString((string)cmd.CommandParameters[0]); StringBuilder cachedStringBuilder = cmd.CachedStringBuilder; cachedStringBuilder.Length = 0; cachedStringBuilder.Append(cmd.CommandId); cachedStringBuilder.Append(" APPEND \""); cachedStringBuilder.Append(value); cachedStringBuilder.Append("\" "); ImapUtilities.AppendStringBuilderImapFlags((ImapMailFlags)cmd.CommandParameters[1], cachedStringBuilder); cachedStringBuilder.Append(" {"); cachedStringBuilder.Append((long)cmd.CommandParameters[3]); cachedStringBuilder.Append("}\r\n"); return(cachedStringBuilder.ToString()); }, new object[] { mailboxName, messageFlags, messageBody, messageBody.Length }); }
private ImapExtendedMessageRec(ImapMailbox folder, string uidString, string messageId, ImapMailFlags imapMailFlags, long messageSize, int messageSeqNum) : base(uidString, imapMailFlags) { if (string.IsNullOrEmpty(messageId)) { messageId = this.ConstructMessageId(folder); } this.MessageId = messageId; this.MessageSize = messageSize; this.MessageSeqNum = messageSeqNum; }