示例#1
0
 public static void DeleteDomain(string name)
 {
     if (!string.IsNullOrEmpty(name))
     {
         XMLayer xmLayer = new XMLayer();
         try
         {
             xmLayer = XMServer.CreateXMLayer();
             xmLayer.Login();
             xmLayer.DeleteDomain(name);
             xmLayer.Logout();
         }
         catch (XMailException ex)
         {
             Log.WriteException(ex);
             throw;
         }
     }
 }
示例#2
0
    public bool AddNewXMailDomain()
    {
        string domainName = textDomainName.Value;
        bool   result     = false;

        AdminPanelUtils.SaveState("selectedDomain", null, Page.Session);
        XMLayer xmLayer = XMServer.CreateXMLayer();

        if (_domainType == "vir")
        {
            try
            {
                xmLayer.Login();
                // create custom domain
                StringBuilder redirect = new StringBuilder("redirect");
                if (Request.Params[RedirectionsListDDL.UniqueID] != null)
                {
                    string[] RedirectionsList = Request.Params[RedirectionsListDDL.UniqueID].ToString().Split(',');
                    for (int i = 0; i < RedirectionsList.Length; i++)
                    {
                        redirect.AppendFormat("\t\"{0}\"", RedirectionsList[i]);
                    }
                }

                StringBuilder lredirect = new StringBuilder("lredirect");
                if (Request.Params[LRedirectionsListDDL.UniqueID] != null)
                {
                    string[] LRedirectionsList = Request.Params[LRedirectionsListDDL.UniqueID].ToString().Split(',');
                    for (int i = 0; i < LRedirectionsList.Length; i++)
                    {
                        lredirect.AppendFormat("\t\"{0}\"", LRedirectionsList[i]);
                    }
                }
                string data = string.Format("{0}\r\n{1}\r\n{2}\r\n.\r\n", redirect.ToString(), lredirect.ToString(), AdvancedID.Text);
                xmLayer.SetCustomDomainTab(domainName, data);
                xmLayer.Logout();
                result = true;
            }
            catch (XMailException error)
            {
                Log.WriteException(error);
                AdminPanelUtils.SetPageErrorMessage(this.Page, (error.InnerException != null ? error.InnerException.Message : error.Message));
            }
        }
        else
        {
            try
            {
                xmLayer.Login();
                if (!xmLayer.DomainExist(domainName))
                {
                    xmLayer.AddDomain(domainName);
                }
                xmLayer.Logout();
                result = true;
            }
            catch (XMailException error)
            {
                Log.WriteException(error);
                AdminPanelUtils.SetPageErrorMessage(this.Page, error.Message);
            }

            // create webmail domain
            if (_isWebMailExist && result)
            {
                WebmailSettings wmSettings = (new WebMailSettingsCreator()).CreateWebMailSettings(AdminPanelUtils.GetWebMailDataFolder());

                try
                {
                    Domain dom = Domain.GetDomain(domainName);
                    if (dom == null)
                    {
                        int    SmtpPort = wmSettings.XMailSmtpPort;
                        string SmtpHost = wmSettings.WmServerHost;
                        int    ImapPort = 143;
                        string ImapHost = wmSettings.WmServerHost;
                        Domain new_dom  = new Domain(0, domainName, IncomingMailProtocol.WMServer, ImapHost, ImapPort, SmtpHost, SmtpPort, false);


                        new_dom.Global_addr_book = false;

                        new_dom.Save();
                        result = true;
                    }
                    else
                    {
                        result = false;
                        AdminPanelUtils.SaveState("SessPageErrorMessage", "Such domain already exists.", Page.Session);
                    }
                }
                catch (Exception error)
                {
                    result = false;
                    Log.WriteException(error);
                    AdminPanelUtils.SetPageErrorMessage(this.Page, (error.InnerException != null ? error.InnerException.Message : error.Message));
                }
            }
        }
        if (result == false)
        {
            try
            {
                xmLayer.Login();
                xmLayer.DeleteDomain(domainName);
                xmLayer.Logout();
            }
            catch (Exception error)
            {
                Log.WriteException(error);
            }
        }
        return(result);
    }