sendEmail.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. //declare(strict_types=1);
  3. # Autoload
  4. use PHPMailer\PHPMailer\PHPMailer;
  5. use PHPMailer\PHPMailer\SMTP;
  6. use PHPMailer\PHPMailer\Exception;
  7. use Skrepr\TeamsConnector\Card;
  8. use Skrepr\TeamsConnector\CardInterface;
  9. use Skrepr\TeamsConnector\Client;
  10. require __DIR__ . '/../vendor/autoload.php';
  11. function url(){
  12. return sprintf(
  13. "%s://%s",
  14. isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 'https' : 'http',
  15. $_SERVER['SERVER_NAME']
  16. );
  17. }
  18. if($_POST) {
  19. $name = trim(stripslashes($_POST['name']));
  20. $email = trim(stripslashes($_POST['email']));
  21. $subject = trim(stripslashes($_POST['subject']));
  22. $computer = strtoupper(trim(stripslashes($_POST['computer'])));
  23. $phone = trim(stripslashes($_POST['phone']));
  24. $location = trim(stripslashes($_POST['location']));
  25. // $file = trim(stripslashes($_POST['datei']));
  26. $contact_message = trim(stripslashes($_POST['message']));
  27. if ($subject == '') { $subject = "Supportanfrage"; }
  28. // Set Message
  29. $message = "<h2>Supportanfrage:</h2><br/>";
  30. $message .= "<b>Vor- / Nachname:</b> " . $name . "<br />";
  31. $message .= "<b>Email:</b> " . $email . "<br />";
  32. $message .= "<b>Telefon:</b> " . $phone . "<br />";
  33. $message .= "<b>Standort:</b> " . $location . "<br />";
  34. $message .= "<b>Computer:</b> " . $computer . "<br />";
  35. $message .= "<b>Betreff:</b> " . $subject . "<br />";
  36. $message .= "<br/><b>Nachricht:</b><br />";
  37. $message .= "<hr>";
  38. // $message .= "<a src='".$file."'></a>";
  39. // $message .= "<hr>";
  40. $message .= nl2br($contact_message);
  41. $message .= "<hr>";
  42. $message .= "<br/><br/><i>Diese Nachricht kam über das Support Formular</i><br />";
  43. // Daten lokal ablegen:
  44. $filename = date("YmdHis") . "_" . $computer . '.json';
  45. file_put_contents("../auftraege/".$filename, json_encode($message, JSON_UNESCAPED_UNICODE), FILE_APPEND | LOCK_EX);
  46. include __DIR__."/addticket.php";
  47. if ( $ticket->statuscode == 201 ) {
  48. # Anlage per API erfolgreich!
  49. }
  50. else {
  51. # Send eMail
  52. try {
  53. // Versuch, eine neue Instanz der Klasse PHPMailer zu erstellen
  54. $mail = new PHPMailer (true);
  55. //$mail->SMTPDebug = SMTP::DEBUG_SERVER;
  56. $mail->isSMTP();
  57. $mail->Host = "postfix";
  58. $mail->Port = "25";
  59. $mail->SMTPAuth = false;
  60. $mail->CharSet = 'UTF-8';
  61. $mail->Encoding = 'base64';
  62. if ($computer==="TEST") {
  63. $mail->setFrom('vadmin@xtend.de', 'Vadmin Xtend');
  64. } else {
  65. $mail->setFrom('dialog-it@xtend.de', 'dialog-it Xtend');
  66. }
  67. $mail->addAddress('rmm@vision4it.de', 'Empfänger');
  68. //$mail->addAddress('as@vision4it.de', 'Empfänger');
  69. $mail->isHTML(true);
  70. $mail->Subject = $subject;
  71. $mail->Body = $message;
  72. $mail->send();
  73. echo "OK";
  74. } catch (Exception $e) {
  75. echo "<h2>Fehler beim Senden der eMail...</h2>";
  76. }
  77. }
  78. # Send to MS Teams Channel:
  79. try {
  80. if ($computer==="TEST") {
  81. $endPoint = 'https://vision4itmanufaktur.webhook.office.com/webhookb2/6015fd18-7016-4c5c-9a8b-322f544e23a1@b21d8bf4-1752-4aee-8c45-fdfeea4f5fc2/IncomingWebhook/715dcdf468624502943c33b76da814bc/c17f1d0d-51e3-4149-b1e4-7caa4a45867f';
  82. } else {
  83. $endPoint = 'https://xtend975.webhook.office.com/webhookb2/17865e5c-cdd2-48e4-bf53-4ced058490cf@9a94220a-3366-479f-ad5f-2157f19d9307/IncomingWebhook/6f60fe6837ff47739821154863f8a9a3/da7b9b09-3ffa-4280-bd0c-ae79e01f813f';
  84. }
  85. $httpClient = new \GuzzleHttp\Client();
  86. $teamsClient = new Client($endPoint, $httpClient);
  87. $card = (new Card('Supportanfrage'))
  88. ->setText($message)
  89. ->setThemeColor(CardInterface::STATUS_DEFAULT)
  90. ->setTitle('Problem: '.$subject);
  91. $teamsClient->send($card);
  92. } catch (Exception $e) {
  93. echo "<h2>Fehler beim Senden an MS Teams Channel...</h2>";
  94. }
  95. }
  96. ?>