public static int UpdateMailForwarding(MailAlias item) { // check account int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); if (accountCheck < 0) return accountCheck; // load original meta item MailAlias origItem = (MailAlias)PackageController.GetPackageItem(item.Id); if (origItem == null) return BusinessErrorCodes.ERROR_MAIL_FORWARDINGS_PACKAGE_ITEM_NOT_FOUND; // check package int packageCheck = SecurityContext.CheckPackage(item.PackageId, DemandPackage.IsActive); if (packageCheck < 0) return packageCheck; // place log record TaskManager.StartTask("MAIL_FORWARDING", "UPDATE", origItem.Name); TaskManager.ItemId = item.Id; try { // update forwarding MailServer mail = new MailServer(); ServiceProviderProxy.Init(mail, origItem.ServiceId); MailAlias alias = new MailAlias(); alias.Name = origItem.Name; alias.ForwardTo = item.ForwardTo; //For MailEnable alias updating alias.DeleteOnForward = true; alias.ForwardingAddresses = new string[1]; alias.ForwardingAddresses[0] = item.ForwardTo; // // update service item mail.UpdateMailAlias(alias); return 0; } catch (Exception ex) { throw TaskManager.WriteError(ex); } finally { TaskManager.CompleteTask(); } }