public void SaveItem(MailList item)
		{
			item.PostingMode = (PostingMode)Enum.Parse(typeof(PostingMode), ddlPostingMode.SelectedValue, true);
            item.ModeratorAddress = txtEmailAnnouncements.Text;
			item.Members = mailEditItems.Items;
            item.RequireSmtpAuthentication = cbSMTPAuthentication.Checked;
  		}
Ejemplo n.º 2
0
        public void Read(MailList maillist)
        {
            nodeConfig["domain"]                   = AmsMailbox.GetDomainName(maillist.Name);
            nodeConfig["enabled"]                  = maillist.Enabled ? "1" : "0";
            nodeConfig["user"]                     = AmsMailbox.GetAccountName(maillist.Name);
            nodeConfig["triggertext"]              = "TRIGGER";
            nodeConfig["usetriggeredreplyto"]      = "0";
            nodeConfig["triggeredreplyto"]         = string.Empty;
            nodeConfig["usetriggeredfrom"]         = string.Empty;
            nodeConfig["triggeredfrom"]            = string.Empty;
            nodeConfig["maxtriggersperday"]        = "100";
            nodeConfig["useonlymemberscantrigger"] = "0";
            nodeConfig["maxaddresses"]             = "5000";

            // copy mail list members
            TreeNode addresses = listConfig.ChildNodes["addresses"];

            if (addresses == null)
            {
                addresses          = new TreeNode();
                addresses.NodeName = "addresses";
                listConfig.ChildNodes.Add(addresses);
            }
            addresses.ChildNodes.Clear();

            foreach (string member in maillist.Members)
            {
                TreeNode node = new TreeNode(addresses);
                node.NodeValue = member;
                addresses.ChildNodes.Add(node);
            }
        }
Ejemplo n.º 3
0
        public override MailList[] GetLists(string domainName)
        {
            try
            {
                SM3.svcMailListAdmin svcLists = new SM3.svcMailListAdmin();
                PrepareProxy(svcLists);

                SM3.MailingListResult mResult = svcLists.GetMailingListsByDomain(
                    AdminUsername,
                    AdminPassword,
                    domainName
                    );

                if (!mResult.Result)
                {
                    throw new Exception(mResult.Message);
                }

                List <MailList> mailLists = new List <MailList>();
                foreach (string listName in mResult.listNames)
                {
                    SM3.SettingsRequestResult sResult = svcLists.GetRequestedListSettings(
                        AdminUsername,
                        AdminPassword,
                        domainName,
                        listName,
                        sm3Settings
                        );

                    if (!sResult.Result)
                    {
                        throw new Exception(sResult.Message);
                    }

                    SM3.SubscriberListResult rResult = svcLists.GetSubscriberList(
                        AdminUsername,
                        AdminPassword,
                        domainName,
                        listName
                        );

                    if (!rResult.Result)
                    {
                        throw new Exception(rResult.Message);
                    }

                    MailList list = new MailList();
                    list.Name = string.Concat(listName, "@", domainName);
                    SetMailListSettings(list, sResult.settingValues);
                    SetMailListMembers(list, rResult.Subscribers);
                    mailLists.Add(list);
                }

                return(mailLists.ToArray());
            }
            catch (Exception ex)
            {
                throw new Exception("Couldn't obtain domain mail lists.", ex);
            }
        }
		public void SaveItem(MailList item)
		{
			item.ReplyToMode = (ReplyTo)Enum.Parse(typeof(ReplyTo), ddlReplyTo.SelectedValue, true);
			item.PostingMode = (PostingMode)Enum.Parse(typeof(PostingMode), ddlPostingMode.SelectedValue, true);

			item.Members = mailEditItems.Items;
		}
        public void BindItem(MailList item)
        {
            itemName = item.Name;
            txtDescription.Text = item.Description;
            if (String.IsNullOrEmpty(item.ModeratorAddress))
            {
                Utils.SelectListItem(ddlListModerators, GetLocalizedString("Text.SelectModerator"));
                selectedModerator = GetLocalizedString("Text.SelectModerator");
            }
            else
            {
                Utils.SelectListItem(ddlListModerators, item.ModeratorAddress);
                selectedModerator = item.ModeratorAddress;
            }
            chkReplyToList.Checked = (item.ReplyToMode == ReplyTo.RepliesToList);
            Utils.SelectListItem(ddlPostingMode, item.PostingMode);
            txtPassword.Text = item.Password;
            chkPasswordEnabled.Checked = item.RequirePassword;
            txtSubjectPrefix.Text = item.SubjectPrefix;
            chkSubjectPrefixEnabled.Checked = item.EnableSubjectPrefix;
            txtMaxMessageSize.Text = item.MaxMessageSize.ToString();
            txtMaxRecipients.Text = item.MaxRecipientsPerMessage.ToString();

            // members
            mailEditItems.Items = item.Members;
        }
		public void BindItem(MailList item)
		{
			Utils.SelectListItem(ddlReplyTo, item.ReplyToMode);
			Utils.SelectListItem(ddlPostingMode, item.PostingMode);

			mailEditItems.Items = item.Members;
		}
Ejemplo n.º 7
0
        public MailList ToMailList()
        {
            MailList list = new MailList();

            list.Name = maillistName;

            if (nodeConfig["enabled"] == "1")
            {
                list.Enabled = true;
            }

            // copy mail list members
            TreeNode addresses = listConfig.ChildNodes["addresses"];

            if (addresses != null)
            {
                List <string> members = new List <string>();

                foreach (TreeNode node in addresses.ChildNodes)
                {
                    members.Add(node.NodeValue);
                }

                list.Members = members.ToArray();
            }

            return(list);
        }
		public void BindItem(MailList item)
		{
			Utils.SelectListItem(ddlPostingMode, item.PostingMode);
			mailEditItems.Items = item.Members;
            txtEmailAnnouncements.Text = item.ModeratorAddress;
            cbSMTPAuthentication.Checked = item.RequireSmtpAuthentication;
            ToggleFormControls();
		}
Ejemplo n.º 9
0
		public void BindItem(MailList item)
		{
			Utils.SelectListItem(ddlReplyTo, item.ReplyToMode);
			Utils.SelectListItem(ddlPostingMode, item.PostingMode);

			chkModerationEnabled.Checked = item.Moderated;
			txtModeratorEmail.Text = item.ModeratorAddress;

			mailEditItems.Items = item.Members;
		}
Ejemplo n.º 10
0
        protected void SetMailListMembers(MailList list, string[] subscribers)
        {
            List <string> members = new List <string>();

            foreach (string subscriber in subscribers)
            {
                members.Add(subscriber);
            }

            list.Members = members.ToArray();
        }
Ejemplo n.º 11
0
		public void SaveItem(MailList item)
		{
			item.ReplyToMode = (ReplyTo)Enum.Parse(typeof(ReplyTo), ddlReplyTo.SelectedValue, true);
			item.PostingMode = (PostingMode)Enum.Parse(typeof(PostingMode), ddlPostingMode.SelectedValue, true);

			// save password
			item.Password = txtPassword.Text;

			item.Moderated = chkModerationEnabled.Checked;
			item.ModeratorAddress = txtModeratorEmail.Text;

			item.Members = mailEditItems.Items;
		}
Ejemplo n.º 12
0
 public void SaveItem(MailList item)
 {
     item.ReplyToMode = (ReplyTo)Enum.Parse(typeof(ReplyTo), ddlReplyTo.SelectedValue, true);
     item.PostingMode = (PostingMode)Enum.Parse(typeof(PostingMode), ddlPostingMode.SelectedValue, true);
     item.PasswordProtection  = (PasswordProtection)Enum.Parse(typeof(PasswordProtection), ddlPasswordProtection.SelectedValue, true);
     // save password
     item.Password = (txtPassword.Text.Length > 0) ? txtPassword.Text : (string)ViewState["PWD"];
     item.Moderated = chkModerationEnabled.Checked;
     item.ModeratorAddress = txtModeratorEmail.Text;
     item.Description = txtDescription.Text;
     item.Members = mailEditItems.Items;
     item.MaxMessageSizeEnabled = chkMaxMessageSizeEnabled.Checked;
     item.MaxMessageSize = Int32.Parse(txtMaxMessageSize.Text);
     item.MaxRecipientsPerMessage = Int32.Parse(txtMaxRecipients.Text);
 }
Ejemplo n.º 13
0
        public override MailList GetList(string listName)
        {
            try
            {
                string domain  = GetDomainName(listName);
                string account = GetAccountName(listName);

                SM3.svcMailListAdmin svcLists = new SM3.svcMailListAdmin();
                PrepareProxy(svcLists);

                SM3.SettingsRequestResult sResult = svcLists.GetRequestedListSettings(
                    AdminUsername,
                    AdminPassword,
                    domain,
                    account,
                    sm3Settings
                    );

                if (!sResult.Result)
                {
                    throw new Exception(sResult.Message);
                }

                SM3.SubscriberListResult mResult = svcLists.GetSubscriberList(
                    AdminUsername,
                    AdminPassword,
                    domain,
                    account
                    );

                if (!mResult.Result)
                {
                    throw new Exception(mResult.Message);
                }

                MailList list = new MailList();
                list.Name = listName;

                SetMailListSettings(list, sResult.settingValues);
                SetMailListMembers(list, mResult.Subscribers);

                return(list);
            }
            catch (Exception ex)
            {
                throw new Exception("Couldn't obtain mail list.", ex);
            }
        }
Ejemplo n.º 14
0
        public void CreateList(MailList maillist)
        {
            Tree        config  = AMSHelper.GetMailListsConfig();
            AmsMailList amsList = new AmsMailList(maillist.Name);

            if (amsList.Load(config))
            {
                throw new Exception("Mail list is already exists.");
            }

            amsList.Read(maillist);

            if (!amsList.Save(config))
            {
                throw new Exception("Couldn't create a mail list.");
            }
        }
        public void BindItem(MailList item)
        {
            txtDescription.Text = item.Description;
            if (!String.IsNullOrEmpty(item.ModeratorAddress))
            {
                ddlListModerators.SelectedValue = item.ModeratorAddress;
            }
            ddlMembersSource.SelectedValue = item.MembersSource.ToString();
            mailEditItems.Items = item.Members;
            ddlFromHeaderAction.SelectedValue = item.FromHeader.ToString();
            ddlReplyToHeaderAction.SelectedValue = item.ReplyToHeader.ToString();
            txtFromHeaderValue.Text = item.ListFromAddress;
            txtReplyToHeaderValue.Text = item.ListReplyToAddress;
            txtSubjectPrefix.Text = item.SubjectPrefix;
            ddllblOriginator.SelectedValue = item.Originator.ToString();
            ddlPostingMode.SelectedValue = item.PostingMode.ToString();
            ddlPasswordProtection.SelectedValue = item.PasswordProtection.ToString();
            txtPassword.Text = item.Password;
            ddlDefaultRights.SelectedValue = ((int) item.DefaultRights).ToString();
            txtMaxMessageSize.Text = item.MaxMessageSize.ToString();
            txtMaxMembers.Text = item.MaxMembers.ToString();
            chkSendToSender.Checked = item.SendToSender;
            chkDigestMailingList.Checked = item.DigestMode;
            txtMaxMessagesPerMinute.Text = item.MaxMessagesPerMinute.ToString();
            chkSendSubscribe.Checked = item.SendSubscribe;
            chkSendUnSubscribe.Checked = item.SendUnsubscribe;
            ddlConfirmSubscription.SelectedValue = item.ConfirmSubscription.ToString();
            chkCommandInSubject.Checked = item.CommandsInSubject;
            chkEnableSubscribe.Checked = !item.DisableSubscribecommand;
            chkEnableUnsubscribe.Checked = item.AllowUnsubscribe;
            chkEnableLists.Checked = !item.DisableListcommand;
            chkEnableWhich.Checked = !item.DisableWhichCommand;
            chkEnableReview.Checked = !item.DisableReviewCommand;
            chkEnableVacation.Checked = !item.DisableVacationCommand;
            chkModerated.Checked = item.Moderated;
            txtCommandPassword.Text = item.CommandPassword;
            chkSuppressCommandResponses.Checked = item.SuppressCommandResponses;

            ddlMembersSource_SelectedIndexChanged(this, null);
            ddlFromHeaderAction_SelectedIndexChanged(this, null);
            ddlReplyToHeaderAction_SelectedIndexChanged(this, null);
            chkModerated_CheckedChanged(this, null);
            ddlPasswordProtection_SelectedIndexChanged(this, null);
        }
   public void BindItem(MailList item)
   {
       Utils.SelectListItem(ddlReplyTo, item.ReplyToMode);
       Utils.SelectListItem(ddlPostingMode, item.PostingMode);
       Utils.SelectListItem(ddlPrefixOption, item.PrefixOption);
       txtSubjectPrefix.Text = item.SubjectPrefix;
       chkModerationEnabled.Checked = item.Moderated;
       txtModeratorEmail.Text = item.ModeratorAddress;
       mailEditItems.Items = item.Members;
       if (!String.IsNullOrEmpty(item.Password))
       {
           txtPassword.Attributes["value"] = txtPassword.Text = item.Password;
       }
       else
       {
           txtPassword.Text = "";          
       }
       txtDescription.Text = item.Description;
 
       switch (item.AttachHeader)
       {
           case 1:
               cbHeader.Checked = true;
               break;
           case 0:
               cbHeader.Checked = false;
               break;
       }
       switch (item.AttachFooter)
       {
           case 1:
               cbFooter.Checked = true;
               break;
           case 0:
               cbFooter.Checked = false;
               break;
       }
       txtHeaderText.Text = item.TextHeader;
       txtFooterText.Text = item.TextFooter;
       txtHeaderHtml.Text = item.HtmlHeader;
       txtFooterHtml.Text = item.HtmlFooter;
   }
Ejemplo n.º 17
0
        public void UpdateList(MailList maillist)
        {
            Tree        config  = AMSHelper.GetMailListsConfig();
            AmsMailList amsList = new AmsMailList(maillist.Name);

            if (amsList.Load(config))
            {
                amsList.LoadListConfig();
                amsList.Read(maillist);

                if (!amsList.Save(config))
                {
                    throw new Exception("Couldn't update specified mail list.");
                }
            }
            else
            {
                throw new Exception("Couldn't find specified mail list.");
            }
        }
Ejemplo n.º 18
0
 public void BindItem(MailList item)
 {
     Utils.SelectListItem(ddlReplyTo, item.ReplyToMode);
     Utils.SelectListItem(ddlPostingMode, item.PostingMode);
     Utils.SelectListItem(ddlPasswordProtection, item.PasswordProtection);
     chkModerationEnabled.Checked = item.Moderated;
     txtModeratorEmail.Text = item.ModeratorAddress;
     txtDescription.Text = item.Description;
     mailEditItems.Items = item.Members;
     chkMaxMessageSizeEnabled.Checked = item.MaxMessageSizeEnabled;
     txtMaxMessageSize.Text = item.MaxMessageSize.ToString();
     txtMaxRecipients.Text = item.MaxRecipientsPerMessage.ToString();
     if (!String.IsNullOrEmpty(item.Password))
     {
         txtPassword.Attributes["value"] = txtPassword.Text = item.Password;
     }
     else
     {
         txtPassword.Text = "";
     }
 }
		public void SaveItem(MailList item)
		{
			item.Description = txtDescription.Text;
			if (ddlListModerators.SelectedValue == GetLocalizedString("Text.SelectModerator"))
			{
				item.ModeratorAddress = null;
			}
			else
			{
				item.ModeratorAddress = ddlListModerators.SelectedValue;
			}

			item.ReplyToMode = chkReplyToList.Checked ? ReplyTo.RepliesToList : ReplyTo.RepliesToSender;
			item.PostingMode = (PostingMode)Enum.Parse(typeof(PostingMode), ddlPostingMode.SelectedValue, true);
			item.Password = txtPassword.Text;
			item.RequirePassword = chkPasswordEnabled.Checked;
			item.SubjectPrefix = txtSubjectPrefix.Text;
			item.EnableSubjectPrefix = chkSubjectPrefixEnabled.Checked;
			item.MaxMessageSize = Int32.Parse(txtMaxMessageSize.Text);
			item.MaxRecipientsPerMessage = Int32.Parse(txtMaxRecipients.Text);
			item.Members = mailEditItems.Items;
			ctrl = null;
		}
Ejemplo n.º 20
0
 public void SaveItem(MailList item)
 {
     item.Description = txtDescription.Text;
     item.ModeratorAddress = ddlListModerators.SelectedValue;
     item.MembersSource = (IceWarpListMembersSource)Enum.Parse(typeof (IceWarpListMembersSource), ddlMembersSource.SelectedValue);
     item.Members = mailEditItems.Items;
     item.FromHeader = (IceWarpListFromAndReplyToHeader)Enum.Parse(typeof (IceWarpListFromAndReplyToHeader), ddlFromHeaderAction.SelectedValue);
     item.ReplyToHeader = (IceWarpListFromAndReplyToHeader)Enum.Parse(typeof (IceWarpListFromAndReplyToHeader), ddlReplyToHeaderAction.SelectedValue);
     item.ListFromAddress = txtFromHeaderValue.Text;
     item.ListReplyToAddress = txtReplyToHeaderValue.Text;
     item.SubjectPrefix = txtSubjectPrefix.Text;
     item.Originator = (IceWarpListOriginator)Enum.Parse(typeof (IceWarpListOriginator), ddllblOriginator.SelectedValue);
     item.PostingMode = (PostingMode)Enum.Parse(typeof (PostingMode), ddlPostingMode.SelectedValue);
     item.PasswordProtection = (PasswordProtection)Enum.Parse(typeof (PasswordProtection), ddlPasswordProtection.SelectedValue);
     item.Password = txtPassword.Text;
     item.DefaultRights = (IceWarpListDefaultRights)Enum.Parse(typeof (IceWarpListDefaultRights), ddlDefaultRights.SelectedValue);
     item.MaxMessageSize = Convert.ToInt32(txtMaxMessageSize.Text);
     item.MaxMembers = Convert.ToInt32(txtMaxMembers.Text);
     item.SetReceipientsToToHeader = chkSetRecipientToToHeader.Checked;
     item.SendToSender = chkSendToSender.Checked;
     item.DigestMode = chkDigestMailingList.Checked;
     item.MaxMessagesPerMinute = Convert.ToInt32(txtMaxMessagesPerMinute.Text);
     item.SendSubscribe = chkSendSubscribe.Checked;
     item.SendUnsubscribe = chkSendUnSubscribe.Checked;
     item.ConfirmSubscription = (IceWarpListConfirmSubscription)Enum.Parse(typeof (IceWarpListConfirmSubscription), ddlConfirmSubscription.SelectedValue);
     item.CommandsInSubject = chkCommandInSubject.Checked;
     item.DisableSubscribecommand = !chkEnableSubscribe.Checked;
     item.AllowUnsubscribe = chkEnableUnsubscribe.Checked;
     item.DisableListcommand = !chkEnableLists.Checked;
     item.DisableWhichCommand = !chkEnableWhich.Checked;
     item.DisableReviewCommand = !chkEnableReview.Checked;
     item.DisableVacationCommand = !chkEnableVacation.Checked;
     item.Moderated = chkModerated.Checked;
     item.CommandPassword = txtCommandPassword.Text;
     item.SuppressCommandResponses = chkSuppressCommandResponses.Checked;
 }
Ejemplo n.º 21
0
        public virtual void UpdateList(MailList list)
        {
            try
            {
                WebsitePanelMailListAdmin svcLists = new WebsitePanelMailListAdmin();
                PrepareProxy(svcLists);

                MailListPostOptions postMode = MailListPostOptions.Anyone;
                if (list.PostingMode == PostingMode.MembersCanPost)
                    postMode = MailListPostOptions.SubscribersOnly;
                if (list.PostingMode == PostingMode.ModeratorCanPost)
                    postMode = MailListPostOptions.ModeratorOnly;

                GenericResult result = svcLists.UpdateMailingList(AdminUsername, AdminPassword,
                    list.Name,
                    list.ModeratorAddress,
                    list.Description,
                    list.MaxMessageSize,
                    list.MaxRecipientsPerMessage,
                    list.EnableSubjectPrefix,
                    list.SubjectPrefix,
                    list.Members,
                    postMode,
                    (list.ReplyToMode == ReplyTo.RepliesToList),
                    list.Password,
                    list.RequirePassword);

                if (!result.Result)
                    throw new Exception(result.Message);
            }
            catch (Exception ex)
            {
                throw new Exception("Could not update mail list", ex);
            }
        }
Ejemplo n.º 22
0
		public MailList[] GetLists(string domainName)
		{
			try
			{
				svcMailListAdmin svcLists = new svcMailListAdmin();
				PrepareProxy(svcLists);

				MailingListResult mResult = svcLists.GetMailingListsByDomain(
					AdminUsername,
					AdminPassword,
					domainName
				);

				if (!mResult.Result)
					throw new Exception(mResult.Message);

				List<MailList> mailLists = new List<MailList>();
				foreach (string listName in mResult.listNames)
				{
					SettingsRequestResult sResult = svcLists.GetRequestedListSettings(
						AdminUsername,
						AdminPassword,
						domainName,
						listName,
						smListSettings
					);

					if (!sResult.Result)
						throw new Exception(sResult.Message);

					SubscriberListResult rResult = svcLists.GetSubscriberList(
						AdminUsername,
						AdminPassword,
						domainName,
						listName
					);

					if (!rResult.Result)
						throw new Exception(rResult.Message);

					MailList list = new MailList();
					list.Name = string.Concat(listName, "@", domainName);
					SetMailListSettings(list, sResult.settingValues);
					SetMailListMembers(list, rResult.Subscribers);
					mailLists.Add(list);
				}

				return mailLists.ToArray();
			}
			catch (Exception ex)
			{
				throw new Exception("Couldn't obtain domain mail lists.", ex);
			}
		}
Ejemplo n.º 23
0
        public virtual MailList[] GetLists(string domainName)
        {
            try
            {
                WebsitePanelMailListAdmin svcLists = new WebsitePanelMailListAdmin();
                PrepareProxy(svcLists);

                MailingListsResult result = svcLists.GetMailingLists(AdminUsername, AdminPassword, domainName);

                if (!result.Result)
                    throw new Exception(result.Message);

                List<MailList> items = new List<MailList>();
                foreach (MailingListInfo listInfo in result.MailingLists)
                {
                    MailList item = new MailList();
                    item.Name = listInfo.Name;
                    item.Description = listInfo.Description;
                }

                return items.ToArray();
            }
            catch (Exception ex)
            {
                throw new Exception("Could not get mail list", ex);
            }
        }
Ejemplo n.º 24
0
        public virtual MailList GetList(string listName)
        {
            try
            {
                WebsitePanelMailListAdmin svcLists = new WebsitePanelMailListAdmin();
                PrepareProxy(svcLists);

                MailingListResult result = svcLists.GetMailingList(AdminUsername, AdminPassword, listName);

                if (!result.Result)
                    throw new Exception(result.Message);

                MailList item = new MailList();
                item.Description = result.MailingList.Description;
                item.EnableSubjectPrefix = result.MailingList.EnableSubjectPrefix;
                item.SubjectPrefix = result.MailingList.SubjectPrefix;
                item.Enabled = true;
                item.MaxMessageSize = result.MailingList.MaxMessageSize;
                item.MaxRecipientsPerMessage = result.MailingList.MaxRecipientsPerMessage;
                item.Members = result.MailingList.Members ?? new string[] { };
                item.Moderated = !String.IsNullOrEmpty(result.MailingList.ModeratorAddress);
                item.ModeratorAddress = result.MailingList.ModeratorAddress;
                item.Name = result.MailingList.Name;
                item.Password = result.MailingList.Password;
                item.RequirePassword = result.MailingList.RequirePassword;

                // post mode
                PostingMode postMode = PostingMode.AnyoneCanPost;
                if (result.MailingList.PostingMode == MailListPostOptions.ModeratorOnly)
                    postMode = PostingMode.ModeratorCanPost;
                else if (result.MailingList.PostingMode == MailListPostOptions.SubscribersOnly)
                    postMode = PostingMode.MembersCanPost;
                item.PostingMode = postMode;
                item.ReplyToMode = result.MailingList.ReplyToList ? ReplyTo.RepliesToList : ReplyTo.RepliesToSender;

                return item;
            }
            catch (Exception ex)
            {
                throw new Exception("Could not get mail list", ex);
            }
        }
Ejemplo n.º 25
0
        protected void SetMailListSettings(MailList list, string[] smSettings)
        {
            foreach (string setting in smSettings)
            {
                string[] bunch = setting.Split(new char[] { '=' });

                switch (bunch[0])
                {
                case "description":
                    list.Description = bunch[1];
                    break;

                case "disabled":
                    list.Enabled = !Convert.ToBoolean(bunch[1]);
                    break;

                case "moderator":
                    list.ModeratorAddress = bunch[1];
                    list.Moderated        = !string.IsNullOrEmpty(bunch[1]);
                    break;

                case "password":
                    list.Password = bunch[1];
                    break;

                case "requirepassword":
                    list.RequirePassword = Convert.ToBoolean(bunch[1]);
                    break;

                case "whocanpost":
                    if (string.Compare(bunch[1], "anyone", true) == 0)
                    {
                        list.PostingMode = PostingMode.AnyoneCanPost;
                    }
                    else if (string.Compare(bunch[1], "moderatoronly", true) == 0)
                    {
                        list.PostingMode = PostingMode.ModeratorCanPost;
                    }
                    else
                    {
                        list.PostingMode = PostingMode.MembersCanPost;
                    }
                    break;

                case "prependsubject":
                    list.EnableSubjectPrefix = Convert.ToBoolean(bunch[1]);
                    break;

                case "maxmessagesize":
                    list.MaxMessageSize = Convert.ToInt32(bunch[1]);
                    break;

                case "maxrecipients":
                    list.MaxRecipientsPerMessage = Convert.ToInt32(bunch[1]);
                    break;

                case "replytolist":
                    if (string.Compare(bunch[1], "true", true) == 0)
                    {
                        list.ReplyToMode = string.Compare(bunch[1], "true", true) == 0 ? ReplyTo.RepliesToList : ReplyTo.RepliesToSender;
                    }
                    break;
                }
            }
        }
Ejemplo n.º 26
0
 /// <remarks/>
 public void UpdateListAsync(MailList list, object userState)
 {
     if ((this.UpdateListOperationCompleted == null))
     {
         this.UpdateListOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateListOperationCompleted);
     }
     this.InvokeAsync("UpdateList", new object[] {
                 list}, this.UpdateListOperationCompleted, userState);
 }
Ejemplo n.º 27
0
		public override void UpdateList(MailList list)
		{
			try
			{
				string domain = GetDomainName(list.Name);
				string account = GetAccountName(list.Name);

				SM3.svcMailListAdmin lists = new SM3.svcMailListAdmin();
				PrepareProxy(lists);

				List<string> settings = new List<string>();
                settings.Add(string.Concat("description=", list.Description));
				settings.Add(string.Concat("disabled=", !list.Enabled));
				settings.Add(string.Concat("moderator=", list.ModeratorAddress));
				settings.Add(string.Concat("password="******"requirepassword="******"whocanpost=anyone");
						break;
					case PostingMode.MembersCanPost:
						settings.Add("whocanpost=subscribersonly");
						break;
					case PostingMode.ModeratorCanPost:
						settings.Add("whocanpost=moderator");
						break;
				}

				settings.Add(string.Concat("prependsubject=", list.EnableSubjectPrefix));
				settings.Add(string.Concat("maxmessagesize=", list.MaxMessageSize));
				settings.Add(string.Concat("maxrecipients=", list.MaxRecipientsPerMessage));

				switch (list.ReplyToMode)
				{
					case ReplyTo.RepliesToList:
						settings.Add("replytolist=true");
						break;
                    case ReplyTo.RepliesToSender:
                        settings.Add("replytolist=false");
                        break;
				}

				SM3.GenericResult result = lists.SetRequestedListSettings(AdminUsername, AdminPassword,
					domain,
					account,
					settings.ToArray()
				);

				if (!result.Result)
					throw new Exception(result.Message);

				if (list.Members.Length > 0)
				{
					result = lists.SetSubscriberList(AdminUsername, AdminPassword,
						domain,
						account,
						list.Members
					);

					if (!result.Result)
						throw new Exception(result.Message);
				}
			}
			catch (Exception ex)
			{
				throw new Exception("Couldn't update mail list.", ex);
			}
		}
Ejemplo n.º 28
0
		public void UpdateList(MailList maillist)
		{
			Tree config = AMSHelper.GetMailListsConfig();
			AmsMailList amsList = new AmsMailList(maillist.Name);

			if (amsList.Load(config))
			{
				amsList.LoadListConfig();
				amsList.Read(maillist);

				if (!amsList.Save(config))
					throw new Exception("Couldn't update specified mail list.");
			}
			else
			{
				throw new Exception("Couldn't find specified mail list.");
			}
		}
Ejemplo n.º 29
0
        public static int AddMailList(MailList item)
        {
            // check account
            int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
            if (accountCheck < 0) return accountCheck;

            // check package
            int packageCheck = SecurityContext.CheckPackage(item.PackageId, DemandPackage.IsActive);
            if (packageCheck < 0) return packageCheck;

            // check quota
            QuotaValueInfo quota = PackageController.GetPackageQuota(item.PackageId, Quotas.MAIL_LISTS);
            if (quota.QuotaExhausted)
                return BusinessErrorCodes.ERROR_MAIL_LISTS_RESOURCE_QUOTA_LIMIT;

            // check recipients number
            if (!CheckRecipientsAllowedNumber(item.PackageId, Quotas.MAIL_MAXLISTMEMBERS, item.Members))
                return BusinessErrorCodes.ERROR_MAIL_LISTS_RECIPIENTS_LIMIT;

            // check if mail resource is available
            int serviceId = PackageController.GetPackageServiceId(item.PackageId, ResourceGroups.Mail);
            if (serviceId == 0)
                return BusinessErrorCodes.ERROR_MAIL_RESOURCE_UNAVAILABLE;

            // check package items
            if (PackageController.GetPackageItemByName(item.PackageId, item.Name, typeof(MailList)) != null)
                return BusinessErrorCodes.ERROR_MAIL_LISTS_PACKAGE_ITEM_EXISTS;

            // place log record
            TaskManager.StartTask("MAIL_LIST", "ADD", item.Name);
            
            try
            {
                // check service items
                MailServer mail = new MailServer();
                ServiceProviderProxy.Init(mail, serviceId);
                if (mail.ListExists(item.Name))
                    return BusinessErrorCodes.ERROR_MAIL_LISTS_SERVICE_ITEM_EXISTS;

                // add domain if not exists
                string domainName = item.Name.Substring(item.Name.IndexOf("@") + 1);
                int domainResult = AddMailDomain(item.PackageId, serviceId, domainName);
                if (domainResult < 0)
                    return domainResult;

                // create service item
                item.Enabled = true;
				item.Members = RemoveItemNameFromMembersList(
						  item.Name
						, item.Members.Clone() as string[]
					);

                // add service item
                mail.CreateList(item);

                // save item
                item.ServiceId = serviceId;
                item.Password = CryptoUtils.Encrypt(item.Password);
                int itemId = PackageController.AddPackageItem(item);

                TaskManager.ItemId = itemId;

                return itemId;
            }
            catch (Exception ex)
            {
                throw TaskManager.WriteError(ex);
            }
            finally
            {
                TaskManager.CompleteTask();
            }
        }
Ejemplo n.º 30
0
		protected void SetMailListSettings(MailList list, string[] smSettings)
		{
			foreach (string setting in smSettings)
			{
				string[] bunch = setting.Split(new char[] { '=' });

				switch (bunch[0])
				{
                    case "description":
				        list.Description = bunch[1];
                        break;
					case "disabled":
						list.Enabled = !Convert.ToBoolean(bunch[1]);
						break;
					case "moderator":
						list.ModeratorAddress = bunch[1];
						list.Moderated = !string.IsNullOrEmpty(bunch[1]);
						break;
					case "password":
						list.Password = bunch[1];
						break;
					case "requirepassword":
						list.RequirePassword = Convert.ToBoolean(bunch[1]);
						break;
					case "whocanpost":
						if (string.Compare(bunch[1], "anyone", true) == 0)
							list.PostingMode = PostingMode.AnyoneCanPost;
						else if (string.Compare(bunch[1], "moderatoronly", true) == 0)
							list.PostingMode = PostingMode.ModeratorCanPost;
						else
							list.PostingMode = PostingMode.MembersCanPost;
						break;
					case "prependsubject":
						list.EnableSubjectPrefix = Convert.ToBoolean(bunch[1]);
						break;
					case "maxmessagesize":
						list.MaxMessageSize = Convert.ToInt32(bunch[1]);
						break;
					case "maxrecipients":
						list.MaxRecipientsPerMessage = Convert.ToInt32(bunch[1]);
						break;
					case "replytolist":
						if (string.Compare(bunch[1], "true", true) == 0)
                            list.ReplyToMode = string.Compare(bunch[1], "true", true) == 0 ? ReplyTo.RepliesToList : ReplyTo.RepliesToSender;
						break;
				}
			}
		}
Ejemplo n.º 31
0
        public static int UpdateMailList(MailList item)
        {
            // check account
            int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
            if (accountCheck < 0) return accountCheck;

            // load original meta item
            MailList origItem = (MailList)PackageController.GetPackageItem(item.Id);
            if (origItem == null)
                return BusinessErrorCodes.ERROR_MAIL_LISTS_PACKAGE_ITEM_NOT_FOUND;

            // check package
            int packageCheck = SecurityContext.CheckPackage(origItem.PackageId, DemandPackage.IsActive);
            if (packageCheck < 0) return packageCheck;

            // check recipients number
            if (!CheckRecipientsAllowedNumber(origItem.PackageId, Quotas.MAIL_MAXLISTMEMBERS, item.Members))
                return BusinessErrorCodes.ERROR_MAIL_LISTS_RECIPIENTS_LIMIT;

            // place log record
            TaskManager.StartTask("MAIL_LIST", "UPDATE", origItem.Name);
            TaskManager.ItemId = item.Id;

            try
            {
                // restore original props
                if (item.Password == "")
                    item.Password = CryptoUtils.Decrypt(origItem.Password);

                // get service
                MailServer mail = new MailServer();
                ServiceProviderProxy.Init(mail, origItem.ServiceId);
                item.Name = origItem.Name;
                item.Enabled = true;
				item.Members = RemoveItemNameFromMembersList(
						  item.Name
						, item.Members.Clone() as string[]
					);

                // update service item
                mail.UpdateList(item);

                // update meta item
                item.Password = CryptoUtils.Encrypt(item.Password);
                PackageController.UpdatePackageItem(item);
                return 0;
            }
            catch (Exception ex)
            {
                throw TaskManager.WriteError(ex);
            }
            finally
            {
                TaskManager.CompleteTask();
            }
        }
		public void SaveItem(MailList item)
		{
			item.Members = mailEditItems.Items;
		}
		public void BindItem(MailList item)
		{
			mailEditItems.Items = item.Members;
		}
Ejemplo n.º 34
0
		public MailList GetList(string listName)
		{
			try
			{
				string domain = GetDomainName(listName);
				string account = GetAccountName(listName);

				svcMailListAdmin svcLists = new svcMailListAdmin();
				PrepareProxy(svcLists);

				SettingsRequestResult sResult = svcLists.GetRequestedListSettings(
					AdminUsername,
					AdminPassword,
					domain,
					account,
					smListSettings
				);

				if (!sResult.Result)
					throw new Exception(sResult.Message);

				SubscriberListResult mResult = svcLists.GetSubscriberList(
					AdminUsername,
					AdminPassword,
					domain,
					account
				);

				if (!mResult.Result)
					throw new Exception(mResult.Message);

				MailList list = new MailList();
				list.Name = listName;

				SetMailListSettings(list, sResult.settingValues);
				SetMailListMembers(list, mResult.Subscribers);

				return list;
			}
			catch (Exception ex)
			{
				throw new Exception("Couldn't obtain mail list.", ex);
			}
		}
Ejemplo n.º 35
0
        public override void UpdateList(MailList list)
        {
            try
            {
                string domain  = GetDomainName(list.Name);
                string account = GetAccountName(list.Name);

                SM3.svcMailListAdmin lists = new SM3.svcMailListAdmin();
                PrepareProxy(lists);

                List <string> settings = new List <string>();
                settings.Add(string.Concat("description=", list.Description));
                settings.Add(string.Concat("disabled=", !list.Enabled));
                settings.Add(string.Concat("moderator=", list.ModeratorAddress));
                settings.Add(string.Concat("password="******"requirepassword="******"whocanpost=anyone");
                    break;

                case PostingMode.MembersCanPost:
                    settings.Add("whocanpost=subscribersonly");
                    break;

                case PostingMode.ModeratorCanPost:
                    settings.Add("whocanpost=moderator");
                    break;
                }

                settings.Add(string.Concat("prependsubject=", list.EnableSubjectPrefix));
                settings.Add(string.Concat("maxmessagesize=", list.MaxMessageSize));
                settings.Add(string.Concat("maxrecipients=", list.MaxRecipientsPerMessage));

                switch (list.ReplyToMode)
                {
                case ReplyTo.RepliesToList:
                    settings.Add("replytolist=true");
                    break;

                case ReplyTo.RepliesToSender:
                    settings.Add("replytolist=false");
                    break;
                }

                SM3.GenericResult result = lists.SetRequestedListSettings(AdminUsername, AdminPassword,
                                                                          domain,
                                                                          account,
                                                                          settings.ToArray()
                                                                          );

                if (!result.Result)
                {
                    throw new Exception(result.Message);
                }

                if (list.Members.Length > 0)
                {
                    result = lists.SetSubscriberList(AdminUsername, AdminPassword,
                                                     domain,
                                                     account,
                                                     list.Members
                                                     );

                    if (!result.Result)
                    {
                        throw new Exception(result.Message);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Couldn't update mail list.", ex);
            }
        }
Ejemplo n.º 36
0
		protected void SetMailListMembers(MailList list, string[] subscribers)
		{
			List<string> members = new List<string>();

			foreach (string subscriber in subscribers)
				members.Add(subscriber);

			list.Members = members.ToArray();
		}
Ejemplo n.º 37
0
		private void SetMailListSettings(MailList list, string[] smSettings)
		{
			foreach (string setting in smSettings)
			{
				string[] bunch = setting.Split(new char[] { '=' });

				switch (bunch[0])
				{
					case "description":
						list.Description = bunch[1];
						break;
					case "disabled":
						list.Enabled = !Convert.ToBoolean(bunch[1]);
						break;
					case "moderator":
						list.ModeratorAddress = bunch[1];
						list.Moderated = !string.IsNullOrEmpty(bunch[1]);
						break;
					case "password":
						list.Password = bunch[1];
						break;
					case "requirepassword":
						list.RequirePassword = Convert.ToBoolean(bunch[1]);
						break;
					case "whocanpost":
						if (string.Compare(bunch[1], "anyone", true) == 0)
							list.PostingMode = PostingMode.AnyoneCanPost;
						else if (string.Compare(bunch[1], "moderator", true) == 0)
							list.PostingMode = PostingMode.ModeratorCanPost;
						else
							list.PostingMode = PostingMode.MembersCanPost;
						break;
					case "prependsubject":
						list.EnableSubjectPrefix = Convert.ToBoolean(bunch[1]);
						break;
					case "maxmessagesize":
						list.MaxMessageSize = Convert.ToInt32(bunch[1]);
						break;
					case "maxrecipients":
						list.MaxRecipientsPerMessage = Convert.ToInt32(bunch[1]);
						break;
					case "replytolist":
						list.ReplyToMode = string.Compare(bunch[1], "true", true) == 0 ? ReplyTo.RepliesToList : ReplyTo.RepliesToSender;
						break;
					case "subject":
						list.SubjectPrefix = bunch[1];
						break;
					case "listtoaddress":
						if (string.Compare(bunch[1], "DEFAULT", true) == 0)
							list.ListToAddress = "DEFAULT";
						else if (string.Compare(bunch[1], "LISTADDRESS", true) == 0)
							list.ListToAddress = "LISTADDRESS";
						else if (string.Compare(bunch[1], "SUBSCRIBERADDRESS", true) == 0)
							list.ListToAddress = "SUBSCRIBERADDRESS";
						else
							list.ListToAddress = bunch[1];
						break;
					case "listfromaddress":
						if (string.Compare(bunch[1], "LISTADDRESS", true) == 0)
							list.ListFromAddress = "LISTADDRESS";
						else list.ListFromAddress = string.Compare(bunch[1], "POSTERADDRESS", true) == 0 ? "POSTERADDRESS" : bunch[1];
						break;
					case "listreplytoaddress":
						if (string.Compare(bunch[1], "LISTADDRESS", true) == 0)
							list.ListReplyToAddress = "LISTADDRESS";
						else list.ListReplyToAddress = string.Compare(bunch[1], "POSTERADDRESS", true) == 0 ? "POSTERADDRESS" : bunch[1];
						break;
					case "digestmode":
						list.DigestMode = Convert.ToBoolean(bunch[1]);
						break;
					case "sendsubscribe":
						list.SendSubscribe = Convert.ToBoolean(bunch[1]);
						break;
					case "sendunsubscribe":
						list.SendUnsubscribe = Convert.ToBoolean(bunch[1]);
						break;
					case "allowunsubscribe":
						list.AllowUnsubscribe = Convert.ToBoolean(bunch[1]);
						break;
					case "disablelistcommand":
						list.DisableListcommand = Convert.ToBoolean(bunch[1]);
						break;
					case "disablesubscribecommand":
						list.DisableSubscribecommand = Convert.ToBoolean(bunch[1]);
						break;

				}
			}
		}
Ejemplo n.º 38
0
		public void UpdateList(MailList list)
		{
			try
			{
				string domain = GetDomainName(list.Name);
				string account = GetAccountName(list.Name);

				svcMailListAdmin lists = new svcMailListAdmin();
				PrepareProxy(lists);

				List<string> settings = new List<string>();
				settings.Add(string.Concat("description=", list.Description));
				settings.Add(string.Concat("disabled=", !list.Enabled));
				settings.Add(string.Concat("moderator=", list.ModeratorAddress));
				settings.Add(string.Concat("password="******"requirepassword="******"whocanpost=anyone");
						break;
					case PostingMode.MembersCanPost:
						settings.Add("whocanpost=subscribersonly");
						break;
					case PostingMode.ModeratorCanPost:
						settings.Add("whocanpost=moderator");
						break;
				}

				settings.Add(string.Concat("prependsubject=", list.EnableSubjectPrefix));
				settings.Add(string.Concat("maxmessagesize=", list.MaxMessageSize));
				settings.Add(string.Concat("maxrecipients=", list.MaxRecipientsPerMessage));
				settings.Add(string.Concat("subject=", list.SubjectPrefix));

				switch (list.ReplyToMode)
				{
					case ReplyTo.RepliesToList:
						settings.Add("replytolist=true");
						break;
					case ReplyTo.RepliesToSender:
						settings.Add("replytolist=false");
						break;
				}

				settings.Add(string.Concat("listtoaddress=", list.ListToAddress));
				settings.Add(string.Concat("listfromaddress=", list.ListFromAddress));
				settings.Add(string.Concat("listreplytoaddress=", list.ListReplyToAddress));
				settings.Add(string.Concat("digestmode=", list.DigestMode));
				settings.Add(string.Concat("sendsubscribe=", list.SendSubscribe));
				settings.Add(string.Concat("sendunsubscribe=", list.SendUnsubscribe));
				settings.Add(string.Concat("allowunsubscribe=", list.AllowUnsubscribe));
				settings.Add(string.Concat("disablelistcommand=", list.DisableListcommand));
				settings.Add(string.Concat("disablesubscribecommand=", list.DisableSubscribecommand));

				GenericResult result = lists.SetRequestedListSettings(AdminUsername, AdminPassword,
																	  domain,
																	  account,
																	  settings.ToArray()
					);

				if (!result.Result)
					throw new Exception(result.Message);

				SubscriberListResult subsribersResult = lists.GetSubscriberList(AdminUsername, AdminPassword, domain, account);

				foreach (string member in subsribersResult.Subscribers)
				{
					GenericResult memberResult = lists.RemoveSubscriber(AdminUsername, AdminPassword, domain, account, member);
					if (!memberResult.Result)
					{
						throw new Exception(memberResult.Message);
					}

				}


				//if (list.Members.Length > 0)
				//{
				result = lists.SetSubscriberList(AdminUsername, AdminPassword,
												 domain,
												 account,
												 list.Members
					);

				if (!result.Result)
					throw new Exception(result.Message);
				//}
			}
			catch (Exception ex)
			{
				throw new Exception("Couldn't update mail list.", ex);
			}

		}
Ejemplo n.º 39
0
		public void CreateList(MailList maillist)
		{
			Tree config = AMSHelper.GetMailListsConfig();
			AmsMailList amsList = new AmsMailList(maillist.Name);

			if (amsList.Load(config))
				throw new Exception("Mail list is already exists.");

			amsList.Read(maillist);

			if (!amsList.Save(config))
				throw new Exception("Couldn't create a mail list.");
		}