/// <summary> /// Deletes specified mail list. /// </summary> /// <param name="listName">Mail list name.</param> public void DeleteList(string listName) { try { svcMailListAdmin svcLists = new svcMailListAdmin(); PrepareProxy(svcLists); string account = GetAccountName(listName); string domain = GetDomainName(listName); GenericResult Result = svcLists.DeleteList( AdminUsername, AdminPassword, domain, listName ); if (!Result.Result) throw new Exception(Result.Message); } catch (Exception ex) { throw new Exception("Couldn't delete a mail list.", ex); } }
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=moderatoronly"); 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)); Log.WriteWarning(string.Join(" , ", settings.ToArray())); GenericResult result = lists.SetRequestedListSettings(AdminUsername, AdminPassword, domain, list.Name, 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, list.Name, list.Members ); if (!result.Result) throw new Exception(result.Message); } } catch (Exception ex) { throw new Exception("Couldn't 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 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 bool ListExists(string listName) { bool exists = false; try { string domain = GetDomainName(listName); string account = GetAccountName(listName); svcMailListAdmin lists = new svcMailListAdmin(); PrepareProxy(lists); MailingListResult result = lists.GetMailingListsByDomain(AdminUsername, AdminPassword, domain); if (result.Result) { foreach (string member in result.listNames) { if (string.Compare(member, listName, true) == 0) { exists = true; break; } } } } catch (Exception ex) { throw new Exception("Couldn't obtain mail list.", ex); } return exists; }