101 lines
4.4 KiB
PHP
101 lines
4.4 KiB
PHP
<?php
|
|
use PHPMailer\PHPMailer\Exception;
|
|
use PHPMailer\PHPMailer\PHPMailer;
|
|
|
|
function fillString($string, $targetlength)
|
|
{
|
|
while(strlen($string) < $targetlength)
|
|
{
|
|
$string = "0".$string;
|
|
}
|
|
|
|
return $string;
|
|
}
|
|
|
|
function left($str, $length)
|
|
{
|
|
return substr($str, 0, $length);
|
|
}
|
|
|
|
function right($str, $length)
|
|
{
|
|
return substr($str, -$length);
|
|
}
|
|
|
|
function generateToken($length): string {
|
|
$chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|
$res = "";
|
|
for($i = 0; $i < $length; $i++) {
|
|
$index = random_int(0, strlen($chars) - 1);
|
|
$res = $res.substr($chars, $index, 1);
|
|
}
|
|
return $res;
|
|
}
|
|
|
|
function htmlToPlain($message): string {
|
|
$messageNew = str_replace('<br/>', "\n", $message);
|
|
$messageNew = preg_replace('/<a href="(.*)">(.*)<\\/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, $contend = "", $requestTyp = "application/text")
|
|
{
|
|
try
|
|
{
|
|
if($contend != "")
|
|
{
|
|
return file_get_contents($URL, true, stream_context_create(array('http' => array('header' => 'Content-type: '.$requestTyp, 'method' => 'POST', 'timeout' => 0.5, 'content' => $contend))));
|
|
}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 = "<?xml version=\"1.0\" encoding=\"utf-8\"?><methodCall><methodName>grid_instant_message</methodName><params><param><value><struct><member><name>position_x</name><value><string>0</string></value></member><member><name>position_y</name><value><string>0</string></value></member><member><name>position_z</name><value><string>0</string></value></member><member><name>to_agent_id</name><value><string>".$toUUID."</string></value></member><member><name>from_agent_session</name><value><string>00000000-0000-0000-0000-000000000000</string></value></member><member><name>im_session_id</name><value><string>".$fromUUID."</string></value></member><member><name>from_agent_name</name><value><string>".$fromName."</string></value></member><member><name>from_agent_id</name><value><string>".$fromUUID."</string></value></member><member><name>binary_bucket</name><value><string>AA==</string></value></member><member><name>region_handle</name><value><i4>0</i4></value></member><member><name>region_id</name><value><string>00000000-0000-0000-0000-000000000000</string></value></member><member><name>parent_estate_id</name><value><string>1</string></value></member><member><name>timestamp</name><value><string>".time()."</string></value></member><member><name>dialog</name><value><string>AA==</string></value></member><member><name>offline</name><value><string>AA==</string></value></member><member><name>from_group</name><value><string>FALSE</string></value></member><member><name>message</name><value><string>".$text."</string></value></member></struct></value></param></params></methodCall>";
|
|
getDataFromHTTP($targetURL, $rawXML, "text/xml");
|
|
}
|
|
?>
|