Beispiel #1
0
        public MailGroupData CreateMailGroup(string name, int domain_id, List <int> address_ids)
        {
            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentException("Invalid mailgroup name.", "name");
            }

            if (domain_id < 0)
            {
                throw new ArgumentException("Invalid domain id.", "domain_id");
            }

            if (name.Length > 64)
            {
                throw new ArgumentException("Local part of mailgroup exceed limitation of 64 characters.", "name");
            }

            if (!Parser.IsEmailLocalPartValid(name))
            {
                throw new ArgumentException("Incorrect group name.", "name");
            }

            if (!address_ids.Any())
            {
                throw new ArgumentException("Empty collection of address_ids.", "address_ids");
            }

            var domain = MailServer.GetWebDomain(domain_id, MailServerFactory);

            var mailgroup_name = name.ToLowerInvariant();

            var mailgroup = MailServer.CreateMailGroup(mailgroup_name, domain, address_ids, MailServerFactory);

            return(mailgroup.ToMailGroupData());
        }
Beispiel #2
0
        public MailGroupData CreateMailGroup(string name, int domain_id, List <int> address_ids)
        {
            if (!IsAdmin)
            {
                throw new SecurityException("Need admin privileges.");
            }

            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentException(@"Invalid mailgroup name.", "name");
            }

            if (domain_id < 0)
            {
                throw new ArgumentException(@"Invalid domain id.", "domain_id");
            }

            if (name.Length > 64)
            {
                throw new ArgumentException(@"Local part of mailgroup exceed limitation of 64 characters.", "name");
            }

            if (!Parser.IsEmailLocalPartValid(name))
            {
                throw new ArgumentException(@"Incorrect group name.", "name");
            }

            if (!address_ids.Any())
            {
                throw new ArgumentException(@"Empty collection of address_ids.", "address_ids");
            }

            var domain = MailServer.GetWebDomain(domain_id, MailServerFactory);

            if (domain.Tenant == Defines.SHARED_TENANT_ID)
            {
                throw new InvalidOperationException("Creating mail group is not allowed for shared domain.");
            }

            var mailgroupName = name.ToLowerInvariant();

            var mailgroup = MailServer.CreateMailGroup(mailgroupName, domain, address_ids, MailServerFactory);

            MailBoxManager.CachedAccounts.ClearAll();

            return(mailgroup.ToMailGroupData());
        }