diff --git a/app/FormValidator.php b/app/FormValidator.php
index 00745ee..78a9c3c 100644
--- a/app/FormValidator.php
+++ b/app/FormValidator.php
@@ -1,4 +1,8 @@
pdo = $pdo;
+ }
- $nameParts = explode(" ", trim($name));
- if(count($nameParts) != 2) {
- return false;
- }
+ private function getUserNameFromGridData($userID, $table, $row): ?string
+ {
+ $statementGridUser = $this->pdo->prepare('SELECT '.$row.' FROM '.$table.' WHERE '.$row.' LIKE ?');
+ $statementGridUser->execute(array($userID.';%'));
- $statementUser = $RUNTIME['PDO']->prepare("SELECT PrincipalID FROM UserAccounts WHERE FirstName = ? AND LastName = ? LIMIT 1");
- $statementUser->execute($nameParts);
+ while ($rowGridUser = $statementGridUser->fetch()) {
+ $userData = explode(";", $rowGridUser[$row]);
- while($rowUser = $statementUser->fetch()) {
- $statementAuth = $RUNTIME['PDO']->prepare("SELECT passwordHash,passwordSalt FROM auth WHERE UUID = ? LIMIT 1");
- $statementAuth->execute(array($rowUser['PrincipalID']));
+ if (count($userData) >= 3) {
+ $dbUserID = $userData[0];
+ $dbUserName = $userData[2];
- if ($rowAuth = $statementAuth->fetch()) {
- return md5(md5($_POST['password']).":".$rowAuth['passwordSalt']) == $rowAuth['passwordHash'];
+ $this->cache['USERNAME'][$userID] = $dbUserName;
+
+ if ($dbUserID == $userID) {
+ return $dbUserName;
}
}
-
- return false;
}
- public function getUserName($userID)
- {
- global $RUNTIME;
-
- if ($userID == "00000000-0000-0000-0000-000000000000") {
- return "Unknown User";
- }
-
- if (isset($RUNTIME['CACHE']['USERNAME'][$userID])) {
- return $RUNTIME['CACHE']['USERNAME'][$userID];
- }
-
- $statementUser = $RUNTIME['PDO']->prepare("SELECT FirstName,LastName FROM UserAccounts WHERE PrincipalID = ?");
- $statementUser->execute(array($userID));
-
- if ($rowUser = $statementUser->fetch()) {
- $RUNTIME['CACHE']['USERNAME'][$userID] = $rowUser['FirstName']." ".$rowUser['LastName'];
- return $rowUser['FirstName']." ".$rowUser['LastName'];
- }
-
- $statementGridUser = $RUNTIME['PDO']->prepare("SELECT UserID FROM GridUser");
- $statementGridUser->execute();
-
- while ($rowGridUser = $statementGridUser->fetch()) {
- $userData = explode(";", $rowGridUser['UserID']);
-
- if (count($userData) >= 3) {
- $dbUserID = $userData[0];
- $dbUserName = $userData[2];
-
- $RUNTIME['CACHE']['USERNAME'][$userID] = $dbUserName;
-
- if ($dbUserID == $userID) {
- return $dbUserName;
- }
- }
- }
-
- $statementFriends = $RUNTIME['PDO']->prepare("SELECT PrincipalID FROM Friends");
- $statementFriends->execute();
-
- while ($rowFriends = $statementFriends->fetch()) {
- $userData = explode(";", $rowFriends['PrincipalID']);
-
- if (count($userData) == 4) {
- $dbUserID = $userData[0];
- $dbUserName = $userData[2];
-
- $RUNTIME['CACHE']['USERNAME'][$userID] = $dbUserName;
-
- if ($dbUserID == $userID) {
- return $dbUserName;
- }
- }
- }
+ return null;
+ }
+ public function getUserName($userID): string
+ {
+ if ($userID == "00000000-0000-0000-0000-000000000000") {
return "Unknown User";
}
- public function getUserUUID($userName)
- {
- global $RUNTIME;
-
- $statementUser = $RUNTIME['PDO']->prepare("SELECT PrincipalID,FirstName,LastName FROM UserAccounts");
- $statementUser->execute();
-
- while ($rowUser = $statementUser->fetch()) {
- $sqlUserName = $rowUser['FirstName']." ".$rowUser['LastName'];
-
- if ($sqlUserName == $userName) {
- return $rowUser['PrincipalID'];
- }
- }
-
- return null;
+ if (isset($this->cache['USERNAME'][$userID])) {
+ return $this->cache['USERNAME'][$userID];
}
- public function getRegionName($regionID)
- {
- global $RUNTIME;
-
- $statementRegion = $RUNTIME['PDO']->prepare("SELECT regionName FROM regions WHERE uuid = ?");
- $statementRegion->execute(array($regionID));
+ $statementUser = $this->pdo->prepare('SELECT FirstName,LastName FROM UserAccounts WHERE PrincipalID = ?');
+ $statementUser->execute(array($userID));
- if ($rowRegion = $statementRegion->fetch()) {
- return $rowRegion['regionName'];
- }
-
- return "Unknown Region";
+ if ($rowUser = $statementUser->fetch()) {
+ $this->cache['USERNAME'][$userID] = $rowUser['FirstName'].' '.$rowUser['LastName'];
+ return $this->cache['USERNAME'][$userID];
}
- public function getPartner($userID)
- {
- global $RUNTIME;
-
- $statement = $RUNTIME['PDO']->prepare("SELECT profilePartner FROM userprofile WHERE useruuid = ?");
- $statement->execute(array($userID));
-
- while ($row = $statement->fetch()) {
- if ($row['profilePartner'] != "00000000-0000-0000-0000-000000000000") {
- return $row['profilePartner'];
- }
- }
-
- return null;
+ $res = $this->getUserNameFromGridData($this->pdo, $userID, 'GridUser', 'UserID');
+ if ($res == null) {
+ $res = $this->getUserNameFromGridData($this->pdo, $userID, 'Friends', 'PrincipalID');
}
- public function allowOfflineIM($userID)
- {
- global $RUNTIME;
-
- $statement = $RUNTIME['PDO']->prepare("SELECT imviaemail FROM usersettings WHERE useruuid = ?");
- $statement->execute(array($userID));
+ return $res == null ? "Unknown User" : $res;
+ }
- if ($row = $statement->fetch()) {
- return strtoupper($row['imviaemail']);
- }
+ public function getUserUUID($userName): ?string
+ {
+ $statementUser = $this->pdo->prepare('SELECT PrincipalID,FirstName,LastName FROM UserAccounts WHERE FirstName = ? AND LastName = ?');
+ $statementUser->execute(explode(' ', $userName));
- return "FALSE";
+ if ($rowUser = $statementUser->fetch()) {
+ return $rowUser['PrincipalID'];
}
- public function getUserMail($userID)
- {
- global $RUNTIME;
-
- $statement = $RUNTIME['PDO']->prepare("SELECT Email FROM UserAccounts WHERE PrincipalID = ?");
- $statement->execute(array($userID));
+ return null;
+ }
- if ($row = $statement->fetch()) {
- return $row['Email'];
- }
+ public function getRegionName($regionID): string
+ {
+ $statementRegion = $this->pdo->prepare("SELECT regionName FROM regions WHERE uuid = ?");
+ $statementRegion->execute(array($regionID));
- return "";
+ if ($rowRegion = $statementRegion->fetch()) {
+ return $rowRegion['regionName'];
}
- public function getUserCount()
- {
- global $RUNTIME;
-
- $statementUser = $RUNTIME['PDO']->prepare("SELECT COUNT(*) FROM UserAccounts");
- $statementUser->execute();
- return $statementUser->fetchColumn();
- }
+ return "Unknown Region";
+ }
- public function getRegionCount()
- {
- global $RUNTIME;
-
- $statementUser = $RUNTIME['PDO']->prepare("SELECT COUNT(*) FROM regions");
- $statementUser->execute();
- return $statementUser->fetchColumn();
- }
+ public function getPartner($userID): string
+ {
+ $statement = $this->pdo->prepare("SELECT profilePartner FROM userprofile WHERE useruuid = ?");
+ $statement->execute(array($userID));
- public function getOnlineCount()
- {
- global $RUNTIME;
-
- $statementUser = $RUNTIME['PDO']->prepare("SELECT COUNT(*) FROM Presence");
- $statementUser->execute();
- return $statementUser->fetchColumn();
- }
-
- public function deleteUser($uuid): bool
- {
- global $RUNTIME;
-
- try {
- $RUNTIME['PDO']->beginTransaction();
-
- $statementAuth = $RUNTIME['PDO']->prepare('DELETE FROM auth WHERE UUID = ?');
- $statementAuth->execute([$uuid]);
-
- $statementAgentPrefs = $RUNTIME['PDO']->prepare('DELETE FROM AgentPrefs WHERE PrincipalID = ?');
- $statementAgentPrefs->execute([$uuid]);
-
- $statementAvatars = $RUNTIME['PDO']->prepare('DELETE FROM Avatars WHERE PrincipalID = ?');
- $statementAvatars->execute([$uuid]);
-
- $statementGridUser = $RUNTIME['PDO']->prepare('DELETE FROM GridUser WHERE UserID = ?');
- $statementGridUser->execute([$uuid]);
-
- $statementEstateUser = $RUNTIME['PDO']->prepare('DELETE FROM estate_users WHERE uuid = ?');
- $statementEstateUser->execute([$uuid]);
-
- $statementEstateBan = $RUNTIME['PDO']->prepare('DELETE FROM estateban WHERE bannedUUID = ?');
- $statementEstateBan->execute([$uuid]);
-
- $statementHgTraveling = $RUNTIME['PDO']->prepare('DELETE FROM hg_traveling_data WHERE UserID = ?');
- $statementHgTraveling->execute([$uuid]);
-
- $statementUserIdentitys = $RUNTIME['PDO']->prepare('DELETE FROM UserIdentitys WHERE PrincipalID = ?');
- $statementUserIdentitys->execute([$uuid]);
-
- $statementFriends = $RUNTIME['PDO']->prepare('DELETE FROM Friends WHERE PrincipalID = ? OR Friend = ?');
- $statementFriends->execute([$uuid, $uuid]);
-
- $statementImOffline = $RUNTIME['PDO']->prepare('DELETE FROM im_offline WHERE PrincipalID = ?');
- $statementImOffline->execute([$uuid]);
-
- $statementInventoryFolders = $RUNTIME['PDO']->prepare('DELETE FROM inventoryfolders WHERE agentID = ?');
- $statementInventoryFolders->execute([$uuid]);
-
- $statementInventoryItems = $RUNTIME['PDO']->prepare('DELETE FROM inventoryitems WHERE avatarID = ?');
- $statementInventoryItems->execute([$uuid]);
-
- $statementGroupMembership = $RUNTIME['PDO']->prepare('DELETE FROM os_groups_membership WHERE PrincipalID = ?');
- $statementGroupMembership->execute([$uuid]);
-
- $statementGroupRoles = $RUNTIME['PDO']->prepare('DELETE FROM os_groups_rolemembership WHERE PrincipalID = ?');
- $statementGroupRoles->execute([$uuid]);
-
- $statementGroupRoles = $RUNTIME['PDO']->prepare('DELETE FROM Presence WHERE UserID = ?');
- $statementGroupRoles->execute([$uuid]);
-
- $statementMute = $RUNTIME['PDO']->prepare('DELETE FROM MuteList WHERE AgentID = ? OR MuteID = ?');
- $statementMute->execute([$uuid, $uuid]);
-
- $statementUserAccounts = $RUNTIME['PDO']->prepare('DELETE FROM UserAccounts WHERE PrincipalID = ?');
- $statementUserAccounts->execute([$uuid]);
-
- $statementUserData = $RUNTIME['PDO']->prepare('DELETE FROM userdata WHERE UserId = ?');
- $statementUserData->execute([$uuid]);
-
- $statementUserNotes = $RUNTIME['PDO']->prepare('DELETE FROM usernotes WHERE targetuuid = ?');
- $statementUserNotes->execute([$uuid]);
-
- $statementUserProfile = $RUNTIME['PDO']->prepare('DELETE FROM userprofile WHERE useruuid = ?');
- $statementUserProfile->execute([$uuid]);
-
- $statementUserSettings = $RUNTIME['PDO']->prepare('DELETE FROM usersettings WHERE useruuid = ?');
- $statementUserSettings->execute([$uuid]);
-
- $RUNTIME['PDO']->commit();
-
- return true;
- } catch (Exception $pdoException) {
- $RUNTIME['PDO']->rollBack();
- error_log('Could not delete account '.$uuid.': '.$pdoException->getMessage());
- return false;
+ while ($row = $statement->fetch()) {
+ if ($row['profilePartner'] != "00000000-0000-0000-0000-000000000000") {
+ return $row['profilePartner'];
}
}
- public function deleteIdentity($uuid, $identId): bool
- {
- global $RUNTIME;
+ return '';
+ }
- $statementValidate = $RUNTIME['PDO']->prepare('SELECT 1 FROM UserIdentitys WHERE PrincipalID = ? AND IdentityID = ?');
- $statementValidate->execute([$uuid, $identId]);
+ public function allowOfflineIM($userID): string
+ {
+ $statement = $this->pdo->prepare("SELECT imviaemail FROM usersettings WHERE useruuid = ?");
+ $statement->execute(array($userID));
- if($statementValidate->fetch()) {
- $statementDelete = $RUNTIME['PDO']->prepare('DELETE FROM UserAccounts WHERE PrincipalID = ?');
- $statementDelete->execute([$identId]);
+ if ($row = $statement->fetch()) {
+ return strtoupper($row['imviaemail']);
+ }
- return true;
- }
+ return "FALSE";
+ }
+ public function getUserMail($userID): string
+ {
+ $statement = $this->pdo->prepare("SELECT Email FROM UserAccounts WHERE PrincipalID = ?");
+ $statement->execute(array($userID));
+
+ if ($row = $statement->fetch()) {
+ return $row['Email'];
+ }
+
+ return "";
+ }
+
+ private function getEntryCount($table): int
+ {
+ $statementCount = $this->pdo->prepare('SELECT COUNT(*) AS Count FROM '.$table);
+ $statementCount->execute();
+ if ($row = $statementCount->fetch()) {
+ return $row['Count'];
+ }
+ return 0;
+ }
+
+ public function getUserCount(): int
+ {
+ return $this->getEntryCount('UserAccounts');
+ }
+
+ public function getRegionCount(): int
+ {
+ return $this->getEntryCount('regions');
+ }
+
+ public function getOnlineCount(): int
+ {
+ return $this->getEntryCount('Presence');
+ }
+
+ public function deleteUser($uuid): bool
+ {
+ try {
+ $this->pdo->beginTransaction();
+
+ $statementAuth = $this->pdo->prepare('DELETE FROM auth WHERE UUID = ?');
+ $statementAuth->execute([$uuid]);
+
+ $statementAgentPrefs = $this->pdo->prepare('DELETE FROM AgentPrefs WHERE PrincipalID = ?');
+ $statementAgentPrefs->execute([$uuid]);
+
+ $statementAvatars = $this->pdo->prepare('DELETE FROM Avatars WHERE PrincipalID = ?');
+ $statementAvatars->execute([$uuid]);
+
+ $statementGridUser = $this->pdo->prepare('DELETE FROM GridUser WHERE UserID = ?');
+ $statementGridUser->execute([$uuid]);
+
+ $statementEstateUser = $this->pdo->prepare('DELETE FROM estate_users WHERE uuid = ?');
+ $statementEstateUser->execute([$uuid]);
+
+ $statementEstateBan = $this->pdo->prepare('DELETE FROM estateban WHERE bannedUUID = ?');
+ $statementEstateBan->execute([$uuid]);
+
+ $statementHgTraveling = $this->pdo->prepare('DELETE FROM hg_traveling_data WHERE UserID = ?');
+ $statementHgTraveling->execute([$uuid]);
+
+ $statementUserIdentitys = $this->pdo->prepare('DELETE FROM UserIdentitys WHERE PrincipalID = ?');
+ $statementUserIdentitys->execute([$uuid]);
+
+ $statementFriends = $this->pdo->prepare('DELETE FROM Friends WHERE PrincipalID = ? OR Friend = ?');
+ $statementFriends->execute([$uuid, $uuid]);
+
+ $statementImOffline = $this->pdo->prepare('DELETE FROM im_offline WHERE PrincipalID = ?');
+ $statementImOffline->execute([$uuid]);
+
+ $statementInventoryFolders = $this->pdo->prepare('DELETE FROM inventoryfolders WHERE agentID = ?');
+ $statementInventoryFolders->execute([$uuid]);
+
+ $statementInventoryItems = $this->pdo->prepare('DELETE FROM inventoryitems WHERE avatarID = ?');
+ $statementInventoryItems->execute([$uuid]);
+
+ $statementGroupMembership = $this->pdo->prepare('DELETE FROM os_groups_membership WHERE PrincipalID = ?');
+ $statementGroupMembership->execute([$uuid]);
+
+ $statementGroupRoles = $this->pdo->prepare('DELETE FROM os_groups_rolemembership WHERE PrincipalID = ?');
+ $statementGroupRoles->execute([$uuid]);
+
+ $statementGroupRoles = $this->pdo->prepare('DELETE FROM Presence WHERE UserID = ?');
+ $statementGroupRoles->execute([$uuid]);
+
+ $statementMute = $this->pdo->prepare('DELETE FROM MuteList WHERE AgentID = ? OR MuteID = ?');
+ $statementMute->execute([$uuid, $uuid]);
+
+ $statementUserAccounts = $this->pdo->prepare('DELETE FROM UserAccounts WHERE PrincipalID = ?');
+ $statementUserAccounts->execute([$uuid]);
+
+ $statementUserData = $this->pdo->prepare('DELETE FROM userdata WHERE UserId = ?');
+ $statementUserData->execute([$uuid]);
+
+ $statementUserNotes = $this->pdo->prepare('DELETE FROM usernotes WHERE targetuuid = ?');
+ $statementUserNotes->execute([$uuid]);
+
+ $statementUserProfile = $this->pdo->prepare('DELETE FROM userprofile WHERE useruuid = ?');
+ $statementUserProfile->execute([$uuid]);
+
+ $statementUserSettings = $this->pdo->prepare('DELETE FROM usersettings WHERE useruuid = ?');
+ $statementUserSettings->execute([$uuid]);
+
+ $this->pdo->commit();
+
+ return true;
+ } catch (Exception $pdoException) {
+ $this->pdo->rollBack();
+ error_log('Could not delete account '.$uuid.': '.$pdoException->getMessage());
return false;
}
-
- public function gen_uuid()
- {
- return sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
- // 32 bits for "time_low"
- mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ),
-
- // 16 bits for "time_mid"
- mt_rand( 0, 0xffff ),
-
- // 16 bits for "time_hi_and_version",
- // four most significant bits holds version number 4
- mt_rand( 0, 0x0fff ) | 0x4000,
-
- // 16 bits, 8 bits for "clk_seq_hi_res",
- // 8 bits for "clk_seq_low",
- // two most significant bits holds zero and one for variant DCE1.1
- mt_rand( 0, 0x3fff ) | 0x8000,
-
- // 48 bits for "node"
- mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff )
- );
- }
}
+
+ public function deleteIdentity($uuid, $identId): bool
+ {
+ $statementValidate = $this->pdo->prepare('SELECT 1 FROM UserIdentitys WHERE PrincipalID = ? AND IdentityID = ?');
+ $statementValidate->execute([$uuid, $identId]);
+
+ if($statementValidate->fetch()) {
+ $statementDelete = $this->pdo->prepare('DELETE FROM UserAccounts WHERE PrincipalID = ?');
+ $statementDelete->execute([$identId]);
+
+ return true;
+ }
+
+ return false;
+ }
+
+ public function generateUuid(): string
+ {
+ return sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
+ // 32 bits for "time_low"
+ mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ),
+
+ // 16 bits for "time_mid"
+ mt_rand( 0, 0xffff ),
+
+ // 16 bits for "time_hi_and_version",
+ // four most significant bits holds version number 4
+ mt_rand( 0, 0x0fff ) | 0x4000,
+
+ // 16 bits, 8 bits for "clk_seq_hi_res",
+ // 8 bits for "clk_seq_low",
+ // two most significant bits holds zero and one for variant DCE1.1
+ mt_rand( 0, 0x3fff ) | 0x8000,
+
+ // 48 bits for "node"
+ mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff )
+ );
+ }
+}
diff --git a/app/discord.php b/app/util/DiscordUtil.php
similarity index 78%
rename from app/discord.php
rename to app/util/DiscordUtil.php
index 9c60af9..85c6d5a 100644
--- a/app/discord.php
+++ b/app/util/DiscordUtil.php
@@ -1,5 +1,11 @@
isSMTP();
+ $mailer->Host = $host;
+ $mailer->Port = $port;
+ $mailer->Username = $username;
+ $mailer->Password = $password;
+ $mailer->SMTPAuth = true;
+ $mailer->SMTPSecure = $port == 465 ? PHPMailer::ENCRYPTION_SMTPS : PHPMailer::ENCRYPTION_STARTTLS;
+ $this->mailer = $mailer;
+ }
+
+ public function sendHtml(string $fromAddr, string $fromName, string $to, string $subject, TemplateBuilder $tpl): bool
+ {
+ try {
+ $this->mailer->setFrom($fromAddr, $fromName);
+ $this->mailer->addAddress($to);
+ } catch (Exception $e) {
+ error_log('Failed to prepare mail client (from: '.$fromAddr.', to: '.$to.')');
+ return false;
+ }
+
+ $this->mailer->isHTML(true);
+ $this->mailer->Subject = $subject;
+ ob_start();
+ $tpl->render();
+ $tplOut = ob_end_clean();
+ $this->mailer->Body = $tplOut;
+ $this->mailer->AltBody = $this::htmlToPlain($tplOut);
+
+ try {
+ $this->mailer->send();
+ return true;
+ } catch (Exception $e) {
+ error_log('Could not send email: '.$this->mailer->ErrorInfo);
+ return false;
+ }
+ }
+
+ private static function htmlToPlain($message): string
+ {
+ $messageNew = str_replace('
', "\n", $message);
+ $messageNew = preg_replace('/(.*)<\\/a>/', "$2: $1", $messageNew);
+ return $messageNew;
+ }
+
+}
diff --git a/app/util/Util.php b/app/util/Util.php
new file mode 100644
index 0000000..9e46c3e
--- /dev/null
+++ b/app/util/Util.php
@@ -0,0 +1,59 @@
+ array('header' => 'Content-type: '.$requestTyp, 'method' => 'POST', 'timeout' => 0.5, 'content' => $content))));
+ } else {
+ return file_get_contents($url);
+ }
+ } catch (Exception $e) {
+ echo "(HTTP REQUEST) error while conntect to remote server. : ".$url;
+ }
+ }
+
+ public static function sendInworldIM($fromUUID, $toUUID, $fromName, $targetURL, $text)
+ {
+ $rawXML = "grid_instant_messageposition_x0position_y0position_z0to_agent_id".$toUUID."from_agent_session00000000-0000-0000-0000-000000000000im_session_id".$fromUUID."from_agent_name".$fromName."from_agent_id".$fromUUID."binary_bucketAA==region_handle0region_id00000000-0000-0000-0000-000000000000parent_estate_id1timestamp".time()."dialogAA==offlineAA==from_groupFALSEmessage".$text."";
+ Util::getDataFromHTTP($targetURL, $rawXML, "text/xml");
+ }
+}
diff --git a/app/utils.php b/app/utils.php
deleted file mode 100644
index c0bf3dd..0000000
--- a/app/utils.php
+++ /dev/null
@@ -1,101 +0,0 @@
-', "\n", $message);
- $messageNew = preg_replace('/(.*)<\\/a>/', "$2: $1", $messageNew);
- return $messageNew;
-}
-
-function sendMail($email, $message, $subject, $title, $preheader): bool
-{
- include_once 'lib/phpmailer/Exception.php';
- include_once 'lib/phpmailer/PHPMailer.php';
- include_once 'lib/phpmailer/SMTP.php';
- include_once 'app/HTML.php';
- global $RUNTIME;
-
- $mailer = new PHPMailer(true);
-
- try {
- $mailer->isSMTP();
- $mailer->Host = $RUNTIME['SMTP']['SERVER'];
- $mailer->Port = $RUNTIME['SMTP']['PORT'];
- $mailer->Username = $RUNTIME['SMTP']['ADDRESS'];
- $mailer->Password = $RUNTIME['SMTP']['PASS'];
- $mailer->SMTPAuth = true;
- $mailer->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
-
- $mailer->setFrom($RUNTIME['SMTP']['ADDRESS'], $RUNTIME['SMTP']['NAME']);
- $mailer->addAddress($email);
-
- $mailer->isHTML(true);
- $mailer->Subject = $subject;
- $mailHtml = new HTML();
- $mailHtml->importHTML("mail.html");
- $mailHtml->setHTMLTitle($title);
- $mailHtml->ReplaceLayoutInhalt('%%MESSAGE%%', $message);
- $mailHtml->ReplaceLayoutInhalt('%%PREHEADER%%', $preheader);
- $mailHtml->build();
- $mailer->Body = $mailHtml->ausgabe();
- $mailer->AltBody = htmlToPlain($message);
-
- $mailer->send();
- return true;
- } catch(Exception $e) {
- error_log('Could not send email: '.$mailer->ErrorInfo);
- return false;
- }
-}
-
-function getDataFromHTTP($url, $content = "", $requestTyp = "application/text")
-{
- try {
- if ($content != "") {
- return file_get_contents($url, true, stream_context_create(array('http' => array('header' => 'Content-type: '.$requestTyp, 'method' => 'POST', 'timeout' => 0.5, 'content' => $content))));
- } else {
- return file_get_contents($url);
- }
- } catch (Exception $e) {
- echo "(HTTP REQUEST) error while conntect to remote server. : ".$url;
- }
-}
-
-function sendInworldIM($fromUUID, $toUUID, $fromName, $targetURL, $text)
-{
- $rawXML = "grid_instant_messageposition_x0position_y0position_z0to_agent_id".$toUUID."from_agent_session00000000-0000-0000-0000-000000000000im_session_id".$fromUUID."from_agent_name".$fromName."from_agent_id".$fromUUID."binary_bucketAA==region_handle0region_id00000000-0000-0000-0000-000000000000parent_estate_id1timestamp".time()."dialogAA==offlineAA==from_groupFALSEmessage".$text."";
- getDataFromHTTP($targetURL, $rawXML, "text/xml");
-}