public void CreateList(MailList list) { try { string domain = GetDomainName(list.Name); string account = GetAccountName(list.Name); svcMailListAdmin lists = new svcMailListAdmin(); PrepareProxy(lists); GenericResult result = lists.AddList(AdminUsername, AdminPassword, domain, account, list.ModeratorAddress, list.Description ); if (!result.Result) throw new Exception(result.Message); 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; } 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)); 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) { if (ListExists(list.Name)) { DeleteList(list.Name); } Log.WriteError(ex); throw new Exception("Couldn't create mail list.", ex); } }