/** * Save a forward and redirect the client on success or display the form with errors * @param array $params the parameters for the request * @return array the vars and template for the forward form when there are errors */ public function saveForward($params) { $openSRS = new openSRS_mail($params["configoption1"], $params["configoption2"], $params["configoption3"], $params["configoption4"], $params["configoption5"]); $success = false; if ($this->getVar("new")) { //$mailboxName = $this->getVar("mailbox"); $mailboxName = $this->getVar("mailbox") . "@" . $params["domain"]; if (!filter_var($mailboxName, FILTER_VALIDATE_EMAIL)) { $this->vars["error"][] = "Invalid Email format. (ex. john.doe or john_doe or johndoe)"; } else { $result = $openSRS->getMailbox($params["domain"], $mailboxName); if ($result["is_success"]) { $this->vars["error"][] = "The mailbox cannot be added because it already exists."; return $this->addEditMailbox($params); } else { if ($result["response_code"] == 2) { // forwardEmail $forwards = $this->getVar("forwardEmail"); if (empty($forwards)) { $this->vars["error"][] = "You must provide addresses to forward to."; } else { $forwardAddresses = explode("\n", $forwards); foreach ($forwardAddresses as $fwid => $forwardAddress) { if (!$forwardAddress) { unset($forwardAddresses[$fwid]); continue; } $forwardAddress = trim($forwardAddress); $forwardAddresses[$fwid] = $forwardAddress; if (!filter_var($forwardAddress, FILTER_VALIDATE_EMAIL)) { $this->vars["error"][] = "The address \"" . $forwardAddress . "\" is not valid."; } } } $forwardAddresses = $openSRS->validateAliasForward($params["domain"], $this->getVar("mailbox"), $forwardAddresses); if (count($forwardAddresses) < 1) { $this->vars["error"][] = "You must provide addresses to forward to."; } // aliases $aliases = $this->getVar("aliases"); if (!empty($aliases)) { $aliasAddresses = explode("\n", $aliases); foreach ($aliasAddresses as $alid => $aliasAddress) { if (!$aliasAddress) { unset($aliasAddress[$alid]); continue; } $aliasAddress = trim($aliasAddress); $aliasAddresses[$alid] = $aliasAddress; if (!filter_var($aliasAddress, FILTER_VALIDATE_EMAIL)) { $this->vars["error"][] = "The alias address \"" . $aliasAddress . "\" is not valid."; } } } $aliasAddresses = $openSRS->validateAliasForward($params["domain"], $this->getVar("mailbox"), $aliasAddresses); foreach ($forwardAddresses as $fwaddress) { foreach ($aliasAddresses as $aladdress) { if ($aladdress == $fwaddress) { $this->vars["error"][] = "Email loop ({$fwaddress})."; } } } if (empty($this->vars["error"])) { /*$result = $openSRS->createMailboxForwardOnly( $params["domain"], $mailboxName, $this->getVar("workgroup"), $forwards );*/ $result = $openSRS->createMailboxForwardOnly($params["domain"], $mailboxName, $this->getVar("workgroup"), $forwardAddresses, $aliasAddresses, $_GET['type']); if ($result["is_success"]) { $success = "&added=true"; } else { $this->vars["error"][] = $result["response_text"]; } } } else { $this->vars["error"][] = $result["response_text"]; } } } } else { $mailboxName = $this->getVar("mailbox"); $result = $openSRS->getMailbox($params["domain"], $mailboxName); if ($result["is_success"]) { $forwards = $this->getVar("forwardEmail"); if (empty($forwards)) { $this->vars["error"][] = "You must provide addresses to forward to."; } else { $forwardAddresses = explode("\n", $forwards); foreach ($forwardAddresses as $fwid => $forwardAddress) { if (!$forwardAddress) { unset($forwardAddresses[$fwid]); continue; } $forwardAddress = trim($forwardAddress); $forwardAddresses[$fwid] = $forwardAddress; if (!filter_var($forwardAddress, FILTER_VALIDATE_EMAIL)) { $this->vars["error"][] = "The address \"" . $forwardAddress . "\" is not valid."; } } } $forwardAddresses = $openSRS->validateAliasForward($params["domain"], $this->getVar("mailbox") . "@" . $params["domain"], $forwardAddresses); if (count($forwardAddresses) < 1) { $this->vars["error"][] = "You must provide addresses to forward to."; } $aliases = $this->getVar("aliases"); if (!empty($aliases)) { $aliasAddresses = explode("\n", $aliases); foreach ($aliasAddresses as $alid => $aliasAddress) { if (!$aliasAddress) { unset($aliasAddress[$alid]); continue; } $aliasAddress = trim($aliasAddress); $aliasAddresses[$alid] = $aliasAddress; if (!filter_var($aliasAddress, FILTER_VALIDATE_EMAIL)) { $this->vars["error"][] = "The alias address \"" . $aliasAddress . "\" is not valid."; } } } $aliasAddresses = $openSRS->validateAliasForward($params["domain"], $this->getVar("mailbox") . "@" . $params["domain"], $aliasAddresses); foreach ($forwardAddresses as $fwaddress) { foreach ($aliasAddresses as $aladdress) { if ($aladdress == $fwaddress) { $this->vars["error"][] = "Email loop ({$fwaddress})."; } } } if (empty($this->vars["error"])) { /*$result = $openSRS->changeMailboxForwardOnly( $params["domain"], $mailboxName, $forwards ); */ $result = $openSRS->changeMailboxForwardOnly($params["domain"], $mailboxName, $forwardAddresses, $aliasAddresses, $_GET['type']); if ($result["is_success"]) { $success = "&edited=true"; } else { $this->vars["error"][] = $result["response_text"]; } } } else { $this->vars["error"][] = $result["response_text"]; } } if ($success) { header("Location: /clientarea.php?action=productdetails&id=" . $params["serviceid"] . $success); } else { return $this->addEditMailbox($params); } }
/** * Save a forward and redirect the client on success or display the form with errors * @param array $params the parameters for the request * @return array the vars and template for the forward form when there are errors */ public function saveForward($params) { $openSRS = new openSRS_mail($params["configoption1"], $params["configoption2"], $params["configoption3"], $params["configoption4"], $params["configoption5"]); $success = false; if ($this->getVar("new")) { $mailboxName = $this->getVar("mailbox"); $result = $openSRS->getMailbox($params["domain"], $mailboxName); if ($result["is_success"]) { $this->vars["error"][] = "The mailbox cannot be added because it already exists."; return $this->addEditMailbox($params); } else { if ($result["response_code"] == 17) { $forwards = $this->getVar("forwardEmail"); if (empty($forwards)) { $this->vars["error"][] = "You must provide addresses to forward to."; } else { $forwardAddresses = explode(",", $forwards); foreach ($forwardAddresses as $forwardAddress) { if (!filter_var($forwardAddress, FILTER_VALIDATE_EMAIL)) { $this->vars["error"][] = "The address " . $forwardAddress . " is not valid."; } } } if (empty($this->vars["error"])) { $result = $openSRS->createMailboxForwardOnly($params["domain"], $mailboxName, $this->getVar("workgroup"), $forwards); if ($result["is_success"]) { $success = "&added=true"; } else { $this->vars["error"][] = $result["response_text"]; } } } else { $this->vars["error"][] = $result["response_text"]; } } } else { $mailboxName = $this->getVar("mailbox"); $result = $openSRS->getMailbox($params["domain"], $mailboxName); if ($result["is_success"]) { $forwards = $this->getVar("forwardEmail"); if (empty($forwards)) { $this->vars["error"][] = "You must provide addresses to forward to."; } else { $forwardAddresses = explode(",", $forwards); foreach ($forwardAddresses as $forwardAddress) { if (!filter_var($forwardAddress, FILTER_VALIDATE_EMAIL)) { $this->vars["error"][] = "The address " . $forwardAddress . " is not valid."; } } } if (empty($this->vars["error"])) { $result = $openSRS->changeMailboxForwardOnly($params["domain"], $mailboxName, $forwards); if ($result["is_success"]) { $success = "&edited=true"; } else { $this->vars["error"][] = $result["response_text"]; } } } else { $this->vars["error"][] = $result["response_text"]; } } if ($success) { header("Location: clientarea.php?action=productdetails&id=" . $params["serviceid"] . $success); } else { return $this->addEditMailbox($params); } }