// Token: 0x06002476 RID: 9334 RVA: 0x000D3DEC File Offset: 0x000D1FEC internal void SendNotificationMessage() { string text = this.CapturePrintMeetingMarkup(); text = string.Format("<div style=\"font-size: 70%; font-family:'{0}'\">{1}</div><br>{2}", Utilities.GetDefaultFontName(), LocalizedStrings.GetHtmlEncoded(PrincipalNotificationMessage.NotificationMessages[(int)this.messageType]), text); using (MessageItem messageItem = MessageItem.Create(this.userContext.MailboxSession, this.userContext.DraftsFolderId)) { messageItem.Subject = LocalizedStrings.GetNonEncoded(PrincipalNotificationMessage.NotificationMessageTitles[(int)this.titleType]); BodyConversionUtilities.SetBody(messageItem, text, Markup.Html, StoreObjectType.Message, this.userContext); messageItem[ItemSchema.ConversationIndexTracking] = true; IExchangePrincipal folderOwnerExchangePrincipal = Utilities.GetFolderOwnerExchangePrincipal(this.folderId, this.userContext); Participant participant = new Participant(folderOwnerExchangePrincipal); messageItem.Recipients.Add(participant, RecipientItemType.To); try { messageItem.SendWithoutSavingMessage(); } catch { ExTraceGlobals.MailTracer.TraceDebug((long)this.GetHashCode(), "Error sending principal notification message."); throw; } } if (Globals.ArePerfCountersEnabled) { OwaSingleCounters.ItemsCreated.Increment(); OwaSingleCounters.MessagesSent.Increment(); } }
public static Stream ConvertItemToMime(StoreObject xsoItem) { Item item = xsoItem as Item; if (item == null) { throw new UnexpectedTypeException("Item", xsoItem); } OutboundConversionOptions outboundConversionOptions = AirSyncUtility.GetOutboundConversionOptions(); PolicyData policyData = ADNotificationManager.GetPolicyData(Command.CurrentCommand.User); if (policyData != null && !policyData.AttachmentsEnabled) { outboundConversionOptions.FilterAttachmentHandler = ((Item item1, Attachment attachment) => false); } item.Load(StoreObjectSchema.ContentConversionProperties); AirSyncStream airSyncStream = new AirSyncStream(); try { if (BodyConversionUtilities.IsMessageRestrictedAndDecoded(item)) { ItemConversion.ConvertItemToMime(((RightsManagedMessageItem)item).DecodedItem, airSyncStream, outboundConversionOptions); } else { ItemConversion.ConvertItemToMime(item, airSyncStream, outboundConversionOptions); } } catch (ConversionFailedException innerException) { throw new ConversionException(string.Format(CultureInfo.InvariantCulture, "MIME conversion failed for Item {0}", new object[] { item }), innerException); } return(airSyncStream); }
// Token: 0x060002EB RID: 747 RVA: 0x00019444 File Offset: 0x00017644 private void CommitAndLoad() { this.Load(); if (Utilities.IsPostRequest(this.request) && !string.IsNullOrEmpty(base.Command)) { if (base.Command.Equals("ClrMRR", StringComparison.Ordinal)) { AutoCompleteCache autoCompleteCache = AutoCompleteCache.TryGetCache(OwaContext.Current.UserContext); if (autoCompleteCache != null) { autoCompleteCache.ClearCache(); autoCompleteCache.Commit(false); } this.isClearMrrRequest = true; } string formParameter = Utilities.GetFormParameter(this.request, "selRwCnt"); if (string.IsNullOrEmpty(formParameter) || !int.TryParse(formParameter, out this.displayItemsPerPage)) { throw new OwaInvalidRequestException("Row count must be a valid number"); } string formParameter2 = Utilities.GetFormParameter(this.request, "selNxt"); int num; if (string.IsNullOrEmpty(formParameter2) || !int.TryParse(formParameter2, out num) || num < 0 || num > 2) { throw new OwaInvalidRequestException("Next selection must be a valid number"); } this.nextSelection = (NextSelectionDirection)num; if (this.userContext.IsFeatureEnabled(Feature.Signature)) { this.autoAddSignature = (Utilities.GetFormParameter(this.request, "chkAddSg", false) != null); this.signatureText = Utilities.GetFormParameter(this.request, "txtSg", false); } this.emptyDeletedItemsOnLogoff = (Utilities.GetFormParameter(this.request, "chkEmDel", false) != null); string formParameter3 = Utilities.GetFormParameter(this.request, "rdRcpt", false); if (!string.IsNullOrEmpty(formParameter3)) { this.readReceiptResponse = (ReadReceiptResponse)int.Parse(formParameter3); } this.addRecentRecipientsToMrr = (Utilities.GetFormParameter(this.request, "chkAddMRR", false) != null); if (this.userContext.IsFeatureEnabled(Feature.Contacts)) { string formParameter4 = Utilities.GetFormParameter(this.request, "anrFst"); this.checkNameInContactsFirst = (!string.IsNullOrEmpty(formParameter4) && formParameter4 == "1"); } if (!this.isClearMrrRequest) { bool flag = false; if (this.displayItemsPerPage != this.userContext.UserOptions.BasicViewRowCount) { this.userContext.UserOptions.BasicViewRowCount = this.displayItemsPerPage; flag = true; } if (this.nextSelection != this.userContext.UserOptions.NextSelection) { this.userContext.UserOptions.NextSelection = this.nextSelection; flag = true; } if (this.userContext.IsFeatureEnabled(Feature.Signature)) { if (this.autoAddSignature != this.userContext.UserOptions.AutoAddSignature) { this.userContext.UserOptions.AutoAddSignature = this.autoAddSignature; flag = true; } if (!Utilities.WhiteSpaceOnlyOrNullEmpty(this.signatureText) && (Utilities.WhiteSpaceOnlyOrNullEmpty(this.userContext.UserOptions.SignatureText) || !string.IsNullOrEmpty(Utilities.GetFormParameter(this.request, "chkRplSg", false)))) { this.userContext.UserOptions.SignatureText = this.signatureText; this.signatureHtml = BodyConversionUtilities.ConvertTextToHtml(this.signatureText); this.userContext.UserOptions.SignatureHtml = this.signatureHtml; flag = true; } } if (this.userContext.UserOptions.EmptyDeletedItemsOnLogoff != this.emptyDeletedItemsOnLogoff) { this.userContext.UserOptions.EmptyDeletedItemsOnLogoff = this.emptyDeletedItemsOnLogoff; flag = true; } if (this.userContext.UserOptions.ReadReceipt != this.readReceiptResponse) { this.userContext.UserOptions.ReadReceipt = this.readReceiptResponse; flag = true; } if (this.userContext.UserOptions.AddRecipientsToAutoCompleteCache != this.addRecentRecipientsToMrr) { this.userContext.UserOptions.AddRecipientsToAutoCompleteCache = this.addRecentRecipientsToMrr; flag = true; } if (this.userContext.IsFeatureEnabled(Feature.Contacts) && this.userContext.UserOptions.CheckNameInContactsFirst != this.checkNameInContactsFirst) { this.userContext.UserOptions.CheckNameInContactsFirst = this.checkNameInContactsFirst; flag = true; } if (flag) { try { this.userContext.UserOptions.CommitChanges(); base.SetSavedSuccessfully(true); } catch (StoragePermanentException) { base.SetSavedSuccessfully(false); } catch (StorageTransientException) { base.SetSavedSuccessfully(false); } } } } }
private Command.ExecutionState ForwardUsingXso(StoreObjectId smartId) { Item smartItem = base.GetSmartItem(smartId); MessageItem messageItem = null; VersionedId versionedId = null; MessageItem messageItem2 = null; CalendarItemBase calendarItemBase = null; try { StoreObjectId defaultFolderId = base.MailboxSession.GetDefaultFolderId(DefaultFolderType.Drafts); messageItem = MessageItem.Create(base.MailboxSession, defaultFolderId); base.ParseMimeToMessage(messageItem); messageItem.Save(SaveMode.NoConflictResolution); messageItem.Load(); versionedId = messageItem.Id; messageItem.Dispose(); messageItem = MessageItem.Bind(base.MailboxSession, versionedId); RmsTemplate rmsTemplate = null; SendMailBase.IrmAction irmAction = base.GetIrmAction(delegate(RightsManagedMessageItem originalRightsManagedItem) { if (originalRightsManagedItem == null) { throw new ArgumentNullException("originalRightsManagedItem"); } if (!originalRightsManagedItem.UsageRights.IsUsageRightGranted(ContentRight.Forward)) { throw new AirSyncPermanentException(StatusCode.IRM_OperationNotPermitted, false) { ErrorStringForProtocolLogger = "sfcEOperationNotPermitted" }; } }, ref smartItem, out rmsTemplate); Microsoft.Exchange.Data.Storage.BodyFormat bodyFormat = messageItem.Body.Format; MeetingMessage meetingMessage = smartItem as MeetingMessage; string text; if ((base.ReplaceMime || irmAction == SendMailBase.IrmAction.CreateNewPublishingLicenseAttachOriginalMessage) && meetingMessage != null && !meetingMessage.IsDelegated() && (meetingMessage is MeetingRequest || meetingMessage is MeetingCancellation)) { text = string.Empty; } else { using (TextReader textReader = messageItem.Body.OpenTextReader(bodyFormat)) { text = textReader.ReadToEnd(); } Body body = (irmAction == SendMailBase.IrmAction.CreateNewPublishingLicenseInlineOriginalBody || irmAction == SendMailBase.IrmAction.ReusePublishingLicenseInlineOriginalBody) ? ((RightsManagedMessageItem)smartItem).ProtectedBody : smartItem.Body; if (body.Format == Microsoft.Exchange.Data.Storage.BodyFormat.TextHtml) { if (bodyFormat == Microsoft.Exchange.Data.Storage.BodyFormat.TextPlain) { XmlDocument xmlDocument = new SafeXmlDocument(); XmlNode xmlNode = xmlDocument.CreateElement("PRE"); XmlAttribute xmlAttribute = xmlDocument.CreateAttribute("STYLE"); xmlAttribute.Value = "word-wrap:break-word; font-size:10.0pt; font-family:Tahoma; color:black"; xmlNode.Attributes.Append(xmlAttribute); xmlNode.InnerText = text; text = xmlNode.OuterXml; } bodyFormat = Microsoft.Exchange.Data.Storage.BodyFormat.TextHtml; } } ReplyForwardConfiguration replyForwardConfiguration = new ReplyForwardConfiguration(bodyFormat); replyForwardConfiguration.ConversionOptionsForSmime = AirSyncUtility.GetInboundConversionOptions(); replyForwardConfiguration.AddBodyPrefix(text); if (base.Version >= 120) { if (smartItem is MessageItem) { messageItem2 = ((MessageItem)smartItem).CreateForward(defaultFolderId, replyForwardConfiguration); if (irmAction == SendMailBase.IrmAction.CreateNewPublishingLicense || irmAction == SendMailBase.IrmAction.CreateNewPublishingLicenseInlineOriginalBody || irmAction == SendMailBase.IrmAction.CreateNewPublishingLicenseAttachOriginalMessage) { messageItem2 = base.GetRightsManagedReplyForward(messageItem2, irmAction, rmsTemplate); } } else if (smartItem is CalendarItem) { CalendarItem calendarItem = (CalendarItem)smartItem; calendarItemBase = base.GetCalendarItemBaseToReplyOrForward(calendarItem); messageItem2 = calendarItemBase.CreateForward(defaultFolderId, replyForwardConfiguration); if (!calendarItem.IsMeeting) { BodyConversionUtilities.CopyBody(messageItem, messageItem2); } } if (messageItem2 == null) { base.ProtocolLogger.SetValue(ProtocolLoggerData.Error, "ForwardFailed"); throw new AirSyncPermanentException(HttpStatusCode.InternalServerError, StatusCode.MailSubmissionFailed, null, false); } if (base.ReplaceMime || irmAction == SendMailBase.IrmAction.CreateNewPublishingLicenseAttachOriginalMessage) { RightsManagedMessageItem rightsManagedMessageItem = messageItem2 as RightsManagedMessageItem; if (rightsManagedMessageItem != null) { rightsManagedMessageItem.ProtectedAttachmentCollection.RemoveAll(); } else { messageItem2.AttachmentCollection.RemoveAll(); } } base.CopyMessageContents(messageItem, messageItem2, false, (irmAction == SendMailBase.IrmAction.CreateNewPublishingLicenseAttachOriginalMessage) ? smartItem : null); base.SendMessage(messageItem2); } else if (smartItem is MessageItem) { using (ItemAttachment itemAttachment = messageItem.AttachmentCollection.AddExistingItem(smartItem)) { MessageItem messageItem3 = (MessageItem)smartItem; itemAttachment.FileName = messageItem3.Subject + itemAttachment.FileExtension; itemAttachment.Save(); } base.SendMessage(messageItem); } else if (smartItem is CalendarItem) { CalendarItem calendarItem2 = (CalendarItem)smartItem; messageItem2 = calendarItem2.CreateForward(defaultFolderId, replyForwardConfiguration); if (messageItem2 == null) { base.ProtocolLogger.SetValue(ProtocolLoggerData.Error, "ForwardFailed2"); throw new AirSyncPermanentException(HttpStatusCode.InternalServerError, StatusCode.MailSubmissionFailed, null, false); } if (!calendarItem2.IsMeeting) { BodyConversionUtilities.CopyBody(messageItem, messageItem2); } base.CopyMessageContents(messageItem, messageItem2, false, null); base.SendMessage(messageItem2); } } finally { if (messageItem != null) { if (versionedId != null) { base.MailboxSession.Delete(DeleteItemFlags.HardDelete, new StoreId[] { versionedId }); } messageItem.Dispose(); } if (smartItem != null) { smartItem.Dispose(); } if (messageItem2 != null) { messageItem2.Dispose(); } if (calendarItemBase != null) { calendarItemBase.Dispose(); } } return(Command.ExecutionState.Complete); }
private void CommitAndLoad() { this.oofSettings = UserOofSettings.GetUserOofSettings(this.userContext.MailboxSession); this.Load(); bool flag = false; if (Utilities.IsPostRequest(this.request) && !string.IsNullOrEmpty(base.Command)) { string formParameter = Utilities.GetFormParameter(this.request, "rdoOof", false); if (!string.IsNullOrEmpty(formParameter)) { bool flag2 = formParameter == 1.ToString(); bool flag3 = Utilities.GetFormParameter(this.request, "chkTmd", false) != null; if (!flag2) { if (this.oofSettings.OofState != OofState.Disabled) { this.oofSettings.OofState = OofState.Disabled; flag = true; } } else if (flag3) { if (this.oofSettings.OofState != OofState.Scheduled) { this.oofSettings.OofState = OofState.Scheduled; flag = true; } string formParameter2 = Utilities.GetFormParameter(this.request, "selSM", false); string formParameter3 = Utilities.GetFormParameter(this.request, "selSD", false); string formParameter4 = Utilities.GetFormParameter(this.request, "selSY", false); string formParameter5 = Utilities.GetFormParameter(this.request, "selST", false); string formParameter6 = Utilities.GetFormParameter(this.request, "selEM", false); string formParameter7 = Utilities.GetFormParameter(this.request, "selED", false); string formParameter8 = Utilities.GetFormParameter(this.request, "selEY", false); string formParameter9 = Utilities.GetFormParameter(this.request, "selET", false); if (string.IsNullOrEmpty(formParameter2) || string.IsNullOrEmpty(formParameter3) || string.IsNullOrEmpty(formParameter4) || string.IsNullOrEmpty(formParameter5) || string.IsNullOrEmpty(formParameter6) || string.IsNullOrEmpty(formParameter7) || string.IsNullOrEmpty(formParameter8) || string.IsNullOrEmpty(formParameter9)) { base.SetInfobarMessage(string.Format(LocalizedStrings.GetNonEncoded(1140546334), this.userContext.UserOptions.DateFormat), InfobarMessageType.Error); return; } int num = int.Parse(formParameter3); if (num > ExDateTime.DaysInMonth(int.Parse(formParameter4), int.Parse(formParameter2))) { num = ExDateTime.DaysInMonth(int.Parse(formParameter4), int.Parse(formParameter2)); } ExDateTime t = new ExDateTime(this.userContext.TimeZone, int.Parse(formParameter4), int.Parse(formParameter2), num); num = int.Parse(formParameter7); if (num > ExDateTime.DaysInMonth(int.Parse(formParameter8), int.Parse(formParameter6))) { num = ExDateTime.DaysInMonth(int.Parse(formParameter8), int.Parse(formParameter6)); } ExDateTime t2 = new ExDateTime(this.userContext.TimeZone, int.Parse(formParameter8), int.Parse(formParameter6), num); t = t.AddHours((double)int.Parse(formParameter5)); t2 = t2.AddHours((double)int.Parse(formParameter9)); if (t > t2) { base.SetInfobarMessage(LocalizedStrings.GetNonEncoded(107113300), InfobarMessageType.Error); this.isInvalidDuration = true; } if (this.oofSettings.Duration == null) { this.oofSettings.Duration = new Duration(); } if (this.oofSettings.Duration.StartTime != (DateTime)t.ToUtc()) { this.oofSettings.Duration.StartTime = (DateTime)t.ToUtc(); flag = true; } if (this.oofSettings.Duration.EndTime != (DateTime)t2.ToUtc()) { this.oofSettings.Duration.EndTime = (DateTime)t2.ToUtc(); flag = true; } } else if (this.oofSettings.OofState != OofState.Enabled) { this.oofSettings.OofState = OofState.Enabled; flag = true; } string formParameter10 = Utilities.GetFormParameter(this.request, "txtInt", false); string formParameter11 = Utilities.GetFormParameter(this.request, "chkInt", false); if (((formParameter11 == null && string.IsNullOrEmpty(this.oofToInternal)) || !string.IsNullOrEmpty(formParameter11)) && !Utilities.WhiteSpaceOnlyOrNullEmpty(formParameter10)) { this.oofSettings.InternalReply.Message = BodyConversionUtilities.ConvertTextToHtml(formParameter10); flag = true; } string formParameter12 = Utilities.GetFormParameter(this.request, "txtExt", false); string formParameter13 = Utilities.GetFormParameter(this.request, "chkExt", false); if (((formParameter13 == null && string.IsNullOrEmpty(this.oofToExternal)) || !string.IsNullOrEmpty(formParameter13)) && !Utilities.WhiteSpaceOnlyOrNullEmpty(formParameter12)) { this.oofSettings.ExternalReply.Message = BodyConversionUtilities.ConvertTextToHtml(formParameter12); flag = true; } if (Utilities.GetFormParameter(this.request, "chkExtSnd", false) != null) { string formParameter14 = Utilities.GetFormParameter(this.request, "rdoAll", false); if (!string.IsNullOrEmpty(formParameter14)) { if (formParameter14 == 3.ToString()) { if (this.oofSettings.ExternalAudience != ExternalAudience.All) { this.oofSettings.ExternalAudience = ExternalAudience.All; flag = true; } } else if (this.oofSettings.ExternalAudience != ExternalAudience.Known) { this.oofSettings.ExternalAudience = ExternalAudience.Known; flag = true; } } } else if (this.oofSettings.ExternalAudience != ExternalAudience.None) { this.oofSettings.ExternalAudience = ExternalAudience.None; flag = true; } if (flag) { try { this.oofSettings.Save(this.userContext.MailboxSession); base.SetSavedSuccessfully(true); } catch (InvalidScheduledOofDuration) { base.SetInfobarMessage(LocalizedStrings.GetNonEncoded(-561991348), InfobarMessageType.Error); this.isInvalidDuration = true; } this.Load(); } } } }
internal static string GetAttachment(MailboxSession mailboxSession, StoreObjectId itemId, string attachmentId, Stream outStream, int offset, int count, Unlimited <ByteQuantifiedSize> maxAttachmentSize, bool rightsManagementSupport, out int total) { string result; using (Item item = Item.Bind(mailboxSession, itemId)) { if ("DRMLicense".Equals(attachmentId, StringComparison.OrdinalIgnoreCase)) { total = AttachmentHelper.WriteDrmLicenseToStream(item, outStream, offset, count, maxAttachmentSize); result = "application/x-microsoft-rpmsg-message-license"; } else { if (rightsManagementSupport) { Command.CurrentCommand.DecodeIrmMessage(item, true); } Attachment attachment = null; try { AttachmentCollection attachmentCollection; if (BodyConversionUtilities.IsMessageRestrictedAndDecoded(item)) { attachmentCollection = ((RightsManagedMessageItem)item).ProtectedAttachmentCollection; } else { attachmentCollection = item.AttachmentCollection; } if (attachmentId.Length > 8) { AttachmentId attachmentId2 = EntitySyncItemId.GetAttachmentId(attachmentId); if (attachmentId2 != null) { attachment = attachmentCollection.Open(attachmentId2); } } if (attachment == null) { int num; if (!int.TryParse(attachmentId, NumberStyles.None, CultureInfo.InvariantCulture, out num) || num < 0) { throw new FormatException("Invalid Attachment Index format: " + attachmentId.ToString(CultureInfo.InvariantCulture)); } IList <AttachmentHandle> handles = attachmentCollection.GetHandles(); if (num < handles.Count) { attachment = attachmentCollection.Open(handles[num]); } } if (attachment == null) { throw new ObjectNotFoundException(ServerStrings.MapiCannotOpenAttachmentId(attachmentId)); } if (BodyConversionUtilities.IsMessageRestrictedAndDecoded(item) && AttachmentHelper.IsProtectedVoiceAttachment(attachment.FileName)) { RightsManagedMessageItem rightsManagedMessageItem = item as RightsManagedMessageItem; rightsManagedMessageItem.UnprotectAttachment(attachment.Id); AttachmentId id = attachment.Id; attachment.Dispose(); attachment = rightsManagedMessageItem.ProtectedAttachmentCollection.Open(id); } if (!maxAttachmentSize.IsUnlimited && attachment.Size > (long)maxAttachmentSize.Value.ToBytes()) { throw new DataTooLargeException(StatusCode.AttachmentIsTooLarge); } result = AttachmentHelper.GetAttachmentItself(attachment, outStream, offset, count, out total); } finally { if (attachment != null) { attachment.Dispose(); } if (rightsManagementSupport) { Command.CurrentCommand.SaveLicense(item); } } } } return(result); }