コード例 #1
0
 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);
 }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }