internal static TransportRuleAction CreateFromInternalAction(Action action) { if (action.Name != "RouteMessageOutboundConnector") { return(null); } RouteMessageOutboundConnectorAction routeMessageOutboundConnectorAction = new RouteMessageOutboundConnectorAction(); try { routeMessageOutboundConnectorAction.ConnectorName = TransportRuleAction.GetStringValue(action.Arguments[0]); } catch (ArgumentOutOfRangeException) { return(null); } return(routeMessageOutboundConnectorAction); }
internal static TransportRuleAction CreateFromInternalAction(Action action) { if (action.Name != "RejectMessage" || !TransportRuleAction.GetStringValue(action.Arguments[1]).Equals(SmtpRejectMessageAction.EnhancedStatusCode)) { return(null); } SmtpRejectMessageAction smtpRejectMessageAction = new SmtpRejectMessageAction(); try { smtpRejectMessageAction.StatusCode = new RejectStatusCode(TransportRuleAction.GetStringValue(action.Arguments[0])); smtpRejectMessageAction.RejectReason = new RejectText(TransportRuleAction.GetStringValue(action.Arguments[2])); } catch (ArgumentOutOfRangeException) { return(null); } return(smtpRejectMessageAction); }
internal static TransportRuleAction CreateFromInternalAction(Action action) { if (action.Name != "SetHeader") { return(null); } SetHeaderAction setHeaderAction = new SetHeaderAction(); try { setHeaderAction.MessageHeader = new HeaderName(TransportRuleAction.GetStringValue(action.Arguments[0])); setHeaderAction.HeaderValue = new HeaderValue(TransportRuleAction.GetStringValue(action.Arguments[1])); } catch (ArgumentOutOfRangeException) { return(null); } return(setHeaderAction); }
internal static TransportRuleAction CreateFromInternalAction(Action action) { if (action.Name != "AuditSeverityLevel") { return(null); } SetAuditSeverityAction setAuditSeverityAction = new SetAuditSeverityAction(); TransportRuleAction result; try { setAuditSeverityAction.SeverityLevel = TransportRuleAction.GetStringValue(action.Arguments[0]); result = setAuditSeverityAction; } catch (ArgumentOutOfRangeException) { result = null; } return(result); }
internal static TransportRuleAction CreateFromInternalAction(Action action) { if (action.Name != "GenerateNotification" || !action.Arguments.Any <Argument>()) { return(null); } TransportRuleAction result; try { result = new GenerateNotificationAction(new DisclaimerText(TransportRuleAction.GetStringValue(action.Arguments[0]))); } catch (ArgumentOutOfRangeException) { result = null; } catch (ArgumentException) { result = null; } return(result); }
internal static TransportRuleAction CreateFromInternalAction(Action action) { if (action.Name != "GenerateIncidentReport" || action.Arguments.Count == 0) { return(null); } GenerateIncidentReportAction generateIncidentReportAction = new GenerateIncidentReportAction(); string stringValue = TransportRuleAction.GetStringValue(action.Arguments[0]); if (!SmtpAddress.IsValidSmtpAddress(stringValue)) { return(null); } generateIncidentReportAction.ReportDestination = new SmtpAddress(stringValue); IncidentReportOriginalMail legacyReportOriginalMail; if (action.Arguments.Count == 2 && GenerateIncidentReport.TryGetIncidentReportOriginalMailParameter(TransportRuleAction.GetStringValue(action.Arguments[1]), out legacyReportOriginalMail)) { generateIncidentReportAction.IncidentReportContent = GenerateIncidentReport.GetLegacyContentItems(legacyReportOriginalMail).ToArray(); } else { for (int i = 1; i < action.Arguments.Count; i++) { IncidentReportContent contentItem; if (Enum.TryParse <IncidentReportContent>(TransportRuleAction.GetStringValue(action.Arguments[i]), out contentItem)) { generateIncidentReportAction.AddIncidentReportContentItem(contentItem); } } if (generateIncidentReportAction.IncidentReportContent.Length == 0) { generateIncidentReportAction.AddIncidentReportContentItem(Microsoft.Exchange.MessagingPolicies.Rules.IncidentReportContent.RuleDetections); } } generateIncidentReportAction.IncidentReportOriginalMail = (generateIncidentReportAction.IncidentReportContent.Contains(Microsoft.Exchange.MessagingPolicies.Rules.IncidentReportContent.AttachOriginalMail) ? IncidentReportOriginalMail.IncludeOriginalMail : IncidentReportOriginalMail.DoNotIncludeOriginalMail); return(generateIncidentReportAction); }
internal static TransportRuleAction CreateFromInternalActions <T>(ShortList <Action> actions, ref int index, string internalActionName) where T : SmtpAddressAction, new() { List <SmtpAddress> list = new List <SmtpAddress>(); while (index < actions.Count && !(actions[index].Name != internalActionName)) { SmtpAddress item = new SmtpAddress(TransportRuleAction.GetStringValue(actions[index].Arguments[0])); if (!item.IsValidAddress) { break; } list.Add(item); index++; } if (list.Count == 0) { return(null); } T t = Activator.CreateInstance <T>(); t.Addresses = list.ToArray(); return(t); }
internal static TransportRuleAction CreateFromInternalAction(Action action) { if (action.Name != "RejectMessage" || !TransportRuleAction.GetStringValue(action.Arguments[0]).Equals("550")) { return(null); } RejectMessageAction rejectMessageAction = new RejectMessageAction(); try { rejectMessageAction.RejectReason = new DsnText(TransportRuleAction.GetStringValue(action.Arguments[2])); rejectMessageAction.EnhancedStatusCode = new RejectEnhancedStatus(TransportRuleAction.GetStringValue(action.Arguments[1])); } catch (ArgumentOutOfRangeException) { return(null); } catch (ArgumentException) { return(null); } return(rejectMessageAction); }
internal static TransportRuleAction CreateFromInternalAction(Action action) { if (action.Name != "ApplyHtmlDisclaimer") { return(null); } DisclaimerLocation location; DisclaimerText text2; DisclaimerFallbackAction disclaimerFallbackAction; try { string text = TransportRuleAction.GetStringValue(action.Arguments[0]); if (text.Equals("Inline", StringComparison.InvariantCultureIgnoreCase)) { text = "Append"; } location = (DisclaimerLocation)Enum.Parse(typeof(DisclaimerLocation), text); text2 = new DisclaimerText(TransportRuleAction.GetStringValue(action.Arguments[1])); disclaimerFallbackAction = (DisclaimerFallbackAction)Enum.Parse(typeof(DisclaimerFallbackAction), TransportRuleAction.GetStringValue(action.Arguments[2])); } catch (ArgumentException) { return(null); } catch (OverflowException) { return(null); } return(new ApplyHtmlDisclaimerAction { Location = location, Text = text2, FallbackAction = disclaimerFallbackAction }); }
internal static TransportRuleAction CreateFromInternalAction(Action action) { if (action.Name != "SetHeader" || TransportRuleAction.GetStringValue(action.Arguments[0]) != "X-MS-Exchange-Organization-SCL") { return(null); } int input; if (!int.TryParse(TransportRuleAction.GetStringValue(action.Arguments[1]), out input)) { return(null); } SetSclAction setSclAction = new SetSclAction(); try { setSclAction.SclValue = new SclValue(input); } catch (ArgumentOutOfRangeException) { return(null); } return(setSclAction); }
internal static TransportRuleAction CreateFromInternalAction(Action action) { if (action.Name != "SenderNotify" || !TransportRuleAction.GetStringValue(action.Arguments[1]).Equals("550")) { return(null); } NotifySenderAction notifySenderAction = new NotifySenderAction(); try { notifySenderAction.SenderNotificationType = (NotifySenderType)Enum.Parse(typeof(NotifySenderType), TransportRuleAction.GetStringValue(action.Arguments[0])); notifySenderAction.EnhancedStatusCode = new RejectEnhancedStatus(TransportRuleAction.GetStringValue(action.Arguments[2])); notifySenderAction.RejectReason = new DsnText(TransportRuleAction.GetStringValue(action.Arguments[3])); } catch (ArgumentOutOfRangeException) { return(null); } catch (ArgumentException) { return(null); } catch (OverflowException) { return(null); } return(notifySenderAction); }
internal static TransportRuleAction CreateFromInternalAction(Action action) { if (action.Name != "AddManagerAsRecipientType") { return(null); } AddedRecipientType recipientType; try { recipientType = (AddedRecipientType)Enum.Parse(typeof(AddedRecipientType), TransportRuleAction.GetStringValue(action.Arguments[0])); } catch (ArgumentException) { return(null); } catch (OverflowException) { return(null); } return(new AddManagerAsRecipientTypeAction { RecipientType = recipientType }); }