1
0
Zachary Kotlarek vor 7 Jahren
Ursprung
Commit
dc50117482
1 geänderte Dateien mit 40 neuen und 0 gelöschten Zeilen
  1. 40 0
      sms.php

+ 40 - 0
sms.php

@@ -1,7 +1,16 @@
 <?php
+	require_once 'sms.secrets';
 	define('DEBUG', true);
 	define('PARAMS', array('to', 'from', 'body', 'is_mms'));
 	define('PARAMS_MMS', array('url', 'file_name', 'mime_type', 'file_size'));
+	define('DEFAULT_NUM', '8002221222');
+
+	debug_log('INIT');
+	use PHPMailer\PHPMailer\PHPMailer;
+	use PHPMailer\PHPMailer\Exception;
+	require_once 'PHPMailer/src/Exception.php';
+	require_once 'PHPMailer/src/PHPMailer.php';
+	require_once 'PHPMailer/src/SMTP.php';
 
 	debug_log('READ');
 	$data = @file_get_contents('php://input');
@@ -63,6 +72,37 @@
 		}
 	}
 
+	debug_log('CLEANUP');
+	if (preg_match('/\d*(\d{10})\D*$/', $sms['from'], $matches)) {
+		$sms['from'] = $matches[1];
+	} else {
+		$sms['from'] = DEFAULT_NUM;
+	}
+	if (preg_match('/\d*(\d{10})\D*$/', $sms['to'], $matches)) {
+		$sms['to'] = $matches[1];
+	} else {
+		$sms['to'] = DEFAULT_NUM;
+	}
+	unset($matches);
+
+	debug_log('MAIL');
+	$mail = new PHPMailer();
+	if (DEBUG) {
+		$mail->SMTPDebug = 2;
+	}
+	$mail->setFrom($sms['from'] . '@' . FROM_DOMAIN, 'SMS ' . $sms['from']);
+	$mail->addAddress(TO_ADDR, TO_NAME);
+	$mail->Subject = 'SMS Message ' . $sms['to'] . ' => ' . $sms['from'];
+	$mail->Body = $sms['body'];
+	foreach ($sms['media'] as $file) {
+		$mail->Body .= "\n\n" . $file['file_name'] . '(' . $file['mime_type'] . '): ' . $file['url'] . "\n";
+	}
+	if (!$mail->send()) {
+		debug_log('Mail error: ' . $mail->ErrorInfo);
+		fail('MAIL');
+	}
+	unset($mail);
+
 	if (DEBUG) {
 		debug_log('DEBUG');
 		debug_log(print_r($sms, true));