109 lines
4.1 KiB
PHP
109 lines
4.1 KiB
PHP
<?php
|
|
header('Access-Control-Allow-Origin: *'); // Allow access from any origin
|
|
header('Content-Type: application/json'); // Set the response content type to JSON
|
|
header('Access-Control-Allow-Methods: POST'); // Allow only POST requests
|
|
|
|
require '../vendor/autoload.php'; // Adjust the path to Composer autoload.php
|
|
require 'message.php'; // Include the message.php file
|
|
|
|
use PHPMailer\PHPMailer\Exception;
|
|
use PHPMailer\PHPMailer\PHPMailer;
|
|
|
|
$mail = new PHPMailer(true);
|
|
mb_internal_encoding("UTF-8");
|
|
|
|
try {
|
|
// Receive and validate input data using filter_input()
|
|
$name = strip_tags(trim(filter_input(INPUT_POST, 'name') . ' ' . filter_input(INPUT_POST, 'vorname'))); // Add filter_input(INPUT_POST, 'nachname') to $name
|
|
|
|
$email = filter_var(trim(filter_input(INPUT_POST, 'email')), FILTER_SANITIZE_EMAIL);
|
|
$subject = strip_tags(trim(filter_input(INPUT_POST, 'formularart')));
|
|
// Construct the message using the function from message.php
|
|
$message = constructMessage();
|
|
|
|
$bot = false;
|
|
|
|
if (!empty(filter_input(INPUT_POST, 'verify_email'))) {
|
|
// Es handelt sich wahrscheinlich um einen Bot
|
|
$bot = true;
|
|
}
|
|
|
|
// Überprüfe die Zeit, die für das Ausfüllen des Formulars benötigt wurde
|
|
$timeSpent = filter_input(INPUT_POST, 'age', FILTER_VALIDATE_FLOAT);
|
|
|
|
// Setze plausiblen Mindestwert für die Zeit auf der Seite
|
|
$minimumTime = 5.0;
|
|
|
|
if ($timeSpent !== null && $timeSpent < $minimumTime) {
|
|
$subject = '$time: ' . $timeSpent . ' ' . $subject;
|
|
$bot = true;
|
|
}
|
|
|
|
// Überprüfe, ob der Nutzer mit der Seite interagiert hat
|
|
$userInteracted = filter_input(INPUT_POST, 'userInteracted');
|
|
|
|
if ($userInteracted === 'false') {
|
|
$subject = '$userInteracted: ' . $userInteracted . ' ' . $subject;
|
|
$bot = true;
|
|
}
|
|
|
|
if ($bot) {
|
|
// Es handelt sich wahrscheinlich um einen Bot
|
|
$subject = 'Botverdacht - ' . $subject;
|
|
}
|
|
|
|
if (empty($name) || !filter_var($email, FILTER_VALIDATE_EMAIL) || empty($message)) {
|
|
// Invalid input
|
|
throw new Exception('Ungültige Eingabedaten.');
|
|
}
|
|
|
|
// Server settings
|
|
//$mail->SMTPDebug = SMTP::DEBUG_SERVER; // Enable this for detailed debugging
|
|
$mail->isSMTP(); // Use SMTP
|
|
$mail->Host = 'sslout.de'; // Set SMTP server
|
|
$mail->SMTPAuth = true; // Enable SMTP authentication
|
|
$mail->Username = 'ah@mediendesign-hnida.de'; // SMTP username
|
|
$mail->Password = 'jrd9h7RnVjf/'; // SMTP password
|
|
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // Enable encryption
|
|
$mail->Port = 465; // TCP port for the connection
|
|
|
|
// Recipients
|
|
$mail->setFrom($email, $name); // Sender address
|
|
$mail->addAddress('ah@mediendesign-hnida.de', 'Andreas Hnida'); // Add recipient
|
|
$mail->addReplyTo($email, $name); // Set reply address
|
|
$mail->addBCC('ah@mediendesign-hnida.de'); // Add bounce email address as BCC
|
|
|
|
// Content
|
|
$mail->isHTML(true); // Email in HTML format
|
|
$mail->CharSet = 'UTF-8';
|
|
$encodedSubject = mb_encode_mimeheader($subject, "UTF-8", "Q");
|
|
$mail->Subject = $encodedSubject;
|
|
$mail->Body = nl2br(htmlspecialchars($message));
|
|
$mail->AltBody = htmlspecialchars($message);
|
|
|
|
// Send email
|
|
if ($mail->send()) {
|
|
// Success response
|
|
echo json_encode(['success' => true, 'message' => 'Nachricht wurde gesendet.']);
|
|
http_response_code(200);
|
|
|
|
// Send a second email to the customer
|
|
$customerEmail = $email;
|
|
$customerSubject = 'Danke für Ihre Bestellung - Verua RaBe Websolutions';
|
|
$encodedSubject = mb_encode_mimeheader($customerSubject, "UTF-8", "Q");
|
|
|
|
$customerMessage = constructCustomerMessageDE($message);
|
|
|
|
$mail->clearAddresses();
|
|
$mail->addAddress($customerEmail);
|
|
$mail->Subject = $encodedSubject;
|
|
$mail->Body = nl2br(htmlspecialchars($customerMessage));
|
|
$mail->AltBody = htmlspecialchars($customerMessage);
|
|
|
|
$mail->send();
|
|
}
|
|
} catch (Exception $e) {
|
|
// Error response if an exception occurs
|
|
echo json_encode(['success' => false, 'message' => "Nachricht konnte nicht gesendet werden. Mailer Error: {$mail->ErrorInfo}"]);
|
|
}
|
|
?>
|