100 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			100 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($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->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("email.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");
 | |
| }
 | |
| ?>
 |