public function OXreq($requestOBJ, $returnResponseObject) { $requestOBJ->setCookieJar($this->cookiejar); $requestOBJ->setHeader('User-Agent: z-push-ox (Version ' . BackendOX::getBackendVersion() . ')'); $response = $requestOBJ->send(); $this->cookiejar = $requestOBJ->getCookieJar(); if ($returnResponseObject) { return $response; } if (200 != $response->getStatus()) { ZLog::Write(LOGLEVEL_WARN, 'BackendOX::OXreq(error: ' . $response->getBody() . ')'); return false; } try { $data = json_decode($response->getBody(), true); if (is_array($data) && array_key_exists("error", $data)) { ZLog::Write(LOGLEVEL_WARN, 'BackendOX::OXreq(error: ' . $response->getBody() . ')'); return false; } else { return $data; } } catch (Exception $e) { return false; } }
/** * Sends an e-mail * Not implemented here * * @param SyncSendMail $sm SyncSendMail object * * @access public * @return boolean * @throws StatusException */ public function SendMail($sm) { ZLog::Write(LOGLEVEL_DEBUG, 'OXEmailSync::SendMail()'); ZLog::Write(LOGLEVEL_DEBUG, 'OXEmailSync::SendMail() Request: ' . print_r($sm, true)); $message = $sm->mime; $flags = ""; if (!empty($sm->source)) { $sourceFolder = $sm->source->folderid; $sourceId = $sm->source->itemid; if ($sm->replyflag == "1") { // Mail was answered $flag = 1; } else { if ($sm->forwardflag == "1") { // Mail was forwarded $flag = 256; } } // Set the flag: $response = $this->OXConnector->OXreqPUT('/ajax/mail', array('action' => 'update', 'session' => $this->OXConnector->getSession(), 'folder' => $sourceFolder, 'id' => $sourceId), array('set_flags' => "{$flag}", 'value' => 'true')); } if (!empty($this->defaultSenderAddress)) { // Setting "From"-Header to the defaultSenderAddress incl. the displayName. $message = preg_replace("/From:.*\n/i", 'From: ' . $this->displayName . ' <' . $this->defaultSenderAddress . ">\n", $message); } // Adding the X-Mailer-Header: $message = "X-Mailer: z-push-ox (Version " . BackendOX::getBackendVersion() . ")\n" . $message; // The easiest way is to Send the complete MIME-Message directly to OX. $response = $this->OXConnector->OXreqPUTforSendMail('/ajax/mail', array('action' => 'new', 'session' => $this->OXConnector->getSession()), $message); ZLog::Write(LOGLEVEL_DEBUG, 'OXEmailSync::SendMail() PUT-Respone: ' . print_r($response, true)); return true; }