private void AddAutoResponderInfo(MailAccount mailbox) { TreeNode autoresponses = deliveryConfig.ChildNodes["autoresponses"]; if (autoresponses == null) { autoresponses = new TreeNode(); autoresponses.NodeName = "autoresponses"; deliveryConfig.ChildNodes.Add(autoresponses); } autoresponses["enabled"] = mailbox.ResponderEnabled ? "1" : "0"; if (mailbox.ResponderEnabled) { autoresponses["subject"] = mailbox.ResponderSubject; autoresponses["body"] = mailbox.ResponderMessage; if (!string.IsNullOrEmpty(mailbox.ReplyTo)) { autoresponses["usereplyto"] = "1"; autoresponses["replyto"] = mailbox.ReplyTo; } else { autoresponses["usereplyto"] = "0"; autoresponses["replyto"] = string.Empty; } } else { autoresponses["subject"] = string.Empty; autoresponses["body"] = string.Empty; } }
public void Read(MailAccount mailbox) { userConfig["domain"] = GetDomainName(mailbox.Name); userConfig["enabled"] = mailbox.Enabled ? "1" : "0"; userConfig["user"] = GetAccountName(mailbox.Name); userConfig["pass"] = mailbox.Password; // forwardings if (mailbox.ForwardingAddresses != null) { AddForwardingInfo(mailbox.ForwardingAddresses, mailbox.DeleteOnForward); } AddAutoResponderInfo(mailbox); }
public void CreateAccount(MailAccount mailbox) { Tree users = AMSHelper.GetUsersConfig(); AmsMailbox accnt = new AmsMailbox(mailbox.Name); if (accnt.Load(users)) { throw new Exception("Mailbox is already registered."); } accnt.Read(mailbox); if (!accnt.Save(users)) { throw new Exception("Couldn't create a mailbox."); } }
public MailAccount ToMailAccount() { MailAccount account = new MailAccount(); account.Name = string.Concat(userConfig["user"], "@", userConfig["domain"]); account.Enabled = userConfig["enabled"] == "1" ? true : false; account.Password = userConfig["pass"]; // read forwardings TreeNode redirection = deliveryConfig.ChildNodes["redirection"]; if (redirection != null) { TreeNode redirections = redirection.ChildNodes["redirections"]; if (redirections != null) { List <string> list = new List <string>(); foreach (TreeNode node in redirections.ChildNodes) { list.Add(node.NodeValue); } account.ForwardingAddresses = list.ToArray(); } } // read autoresponder TreeNode autoresponses = deliveryConfig.ChildNodes["autoresponses"]; if (autoresponses != null) { account.ResponderEnabled = autoresponses["enabled"] == "1" ? true : false; account.ResponderSubject = autoresponses["subject"]; account.ResponderMessage = autoresponses["body"]; if (autoresponses["usereplyto"] == "1") { account.ReplyTo = autoresponses["replyto"]; } } return(account); }
public void UpdateAccount(MailAccount mailbox) { Tree config = AMSHelper.GetUsersConfig(); AmsMailbox amsMailbox = new AmsMailbox(mailbox.Name); if (amsMailbox.Load(config)) { amsMailbox.LoadAccountConfig(); amsMailbox.Read(mailbox); if (!amsMailbox.Save(config)) { throw new Exception("Couldn't update specified mailbox."); } } else { throw new Exception("Couldn't find specified mailbox."); } }
public override void CreateAccount(MailAccount mailbox) { try { svcUserAdmin users = new svcUserAdmin(); PrepareProxy(users); GenericResult1 result = users.AddUser(AdminUsername, AdminPassword, mailbox.Name, mailbox.Password, GetDomainName(mailbox.Name), mailbox.FirstName, mailbox.LastName, false //domain admin is false ); if (!result.Result) { throw new Exception(result.Message); } // set forwarding settings result = users.UpdateUserForwardingInfo(AdminUsername, AdminPassword, mailbox.Name, mailbox.DeleteOnForward, (mailbox.ForwardingAddresses != null ? String.Join(", ", mailbox.ForwardingAddresses) : "")); if (!result.Result) { throw new Exception(result.Message); } // set additional settings result = users.SetRequestedUserSettings(AdminUsername, AdminPassword, mailbox.Name, new string[] { "isenabled=" + mailbox.Enabled.ToString(), "maxsize=" + mailbox.MaxMailboxSize.ToString(), "passwordlocked=" + mailbox.PasswordLocked.ToString(), "replytoaddress=" + (mailbox.ReplyTo != null ? mailbox.ReplyTo : ""), "signature=" + (mailbox.Signature != null ? mailbox.Signature : ""), "spamforwardoption=none" }); if (!result.Result) { throw new Exception(result.Message); } // set autoresponder settings result = users.UpdateUserAutoResponseInfo(AdminUsername, AdminPassword, mailbox.Name, mailbox.ResponderEnabled, (mailbox.ResponderSubject != null ? mailbox.ResponderSubject : ""), (mailbox.ResponderMessage != null ? mailbox.ResponderMessage : "")); if (!result.Result) { throw new Exception(result.Message); } } catch (Exception ex) { throw new Exception("Could not create mailbox", ex); } }
public override void UpdateAccount(MailAccount mailbox) { try { //get original account MailAccount account = GetAccount(mailbox.Name); svcUserAdmin users = new svcUserAdmin(); PrepareProxy(users); string strPassword = mailbox.Password; //Don't change password. Get it from mail server. if (!mailbox.ChangePassword) { strPassword = account.Password; } GenericResult1 result = users.UpdateUser(AdminUsername, AdminPassword, mailbox.Name, strPassword, mailbox.FirstName, mailbox.LastName, account.IsDomainAdmin ); if (!result.Result) { throw new Exception(result.Message); } // set forwarding settings result = users.UpdateUserForwardingInfo(AdminUsername, AdminPassword, mailbox.Name, mailbox.DeleteOnForward, (mailbox.ForwardingAddresses != null ? String.Join(", ", mailbox.ForwardingAddresses) : "")); if (!result.Result) { throw new Exception(result.Message); } // set additional settings result = users.SetRequestedUserSettings(AdminUsername, AdminPassword, mailbox.Name, new string[] { "isenabled=" + mailbox.Enabled.ToString(), "maxsize=" + mailbox.MaxMailboxSize.ToString(), "passwordlocked=" + mailbox.PasswordLocked.ToString(), "replytoaddress=" + (mailbox.ReplyTo != null ? mailbox.ReplyTo : ""), "signature=" + (mailbox.Signature != null ? mailbox.Signature : ""), "spamforwardoption=none" }); if (!result.Result) { throw new Exception(result.Message); } // set autoresponder settings result = users.UpdateUserAutoResponseInfo(AdminUsername, AdminPassword, mailbox.Name, mailbox.ResponderEnabled, (mailbox.ResponderSubject != null ? mailbox.ResponderSubject : ""), (mailbox.ResponderMessage != null ? mailbox.ResponderMessage : "")); if (!result.Result) { throw new Exception(result.Message); } } catch (Exception ex) { throw new Exception("Could not update mailbox", ex); } }