protected static bool IsRecipientDomainsWildcard(IEnumerable <SmtpDomainWithSubdomains> domains) { if (domains != null) { foreach (SmtpDomainWithSubdomains domain in domains) { if (HybridMailflowTaskBase.IsWildcardDomain(domain)) { return(true); } } return(false); } return(false); }
protected static HybridMailflowConfiguration ConvertToHybridMailflowConfiguration(TenantInboundConnector inbound, TenantOutboundConnector outbound) { ArgumentValidator.ThrowIfNull("inbound", inbound); ArgumentValidator.ThrowIfNull("outbound", outbound); HybridMailflowConfiguration hybridMailflowConfiguration = new HybridMailflowConfiguration(); hybridMailflowConfiguration.OutboundDomains = new List <SmtpDomainWithSubdomains>(); foreach (SmtpDomainWithSubdomains smtpDomainWithSubdomains in outbound.RecipientDomains) { if (!HybridMailflowTaskBase.IsWildcardDomain(smtpDomainWithSubdomains)) { hybridMailflowConfiguration.OutboundDomains.Add(new SmtpDomainWithSubdomains(smtpDomainWithSubdomains.Address)); } } if (inbound.SenderIPAddresses != null) { hybridMailflowConfiguration.InboundIPs = new List <IPRange>(); foreach (IPRange item in inbound.SenderIPAddresses) { hybridMailflowConfiguration.InboundIPs.Add(item); } } if (!MultiValuedPropertyBase.IsNullOrEmpty(outbound.SmartHosts)) { SmartHost smartHost = outbound.SmartHosts[0]; if (smartHost.IsIPAddress) { hybridMailflowConfiguration.OnPremisesFQDN = new Fqdn(smartHost.Address.ToString()); } else { hybridMailflowConfiguration.OnPremisesFQDN = new Fqdn(smartHost.ToString()); } } if (inbound.TlsSenderCertificateName != null) { hybridMailflowConfiguration.CertificateSubject = inbound.TlsSenderCertificateName.ToString(); } hybridMailflowConfiguration.SecureMailEnabled = new bool?(inbound.RequireTls && outbound.TlsSettings != null && outbound.TlsSettings == TlsAuthLevel.DomainValidation); hybridMailflowConfiguration.CentralizedTransportEnabled = new bool?((inbound.RestrictDomainsToIPAddresses && HybridMailflowTaskBase.IsRecipientDomainsWildcard(outbound.RecipientDomains)) || outbound.RouteAllMessagesViaOnPremises); return(hybridMailflowConfiguration); }
protected static List <SmtpDomainWithSubdomains> GetRecipientDomains(IEnumerable <SmtpDomainWithSubdomains> domains, bool addWildcard) { List <SmtpDomainWithSubdomains> result = new List <SmtpDomainWithSubdomains>(); if (addWildcard) { HybridMailflowTaskBase.AddRecipientDomain(ref result, SmtpDomainWithSubdomains.StarDomain); } if (domains != null) { foreach (SmtpDomainWithSubdomains domain in domains) { if (!HybridMailflowTaskBase.IsWildcardDomain(domain)) { HybridMailflowTaskBase.AddRecipientDomain(ref result, domain); } } } return(result); }