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; }
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); } }
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; }
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(); }
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; }
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(); }
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; }
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); }
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); } }
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; }
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."); } }
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; }
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; }
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); } }
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); } }
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); } }
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); } }
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; } } }
/// <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); }
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); } }
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."); } }
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(); } }
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; } } }
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; }
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); } }
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); } }
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(); }
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; } } }
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); } }
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."); }