diff --git a/public/de/categories/index.html b/public/de/categories/index.html
index 20fd69e..35be0e0 100755
--- a/public/de/categories/index.html
+++ b/public/de/categories/index.html
@@ -137,14 +137,14 @@
- 🇷🇺
+ 🇬🇧
- 🇬🇧
+ 🇷🇺
diff --git a/public/de/sitemap.xml b/public/de/sitemap.xml
index e5ea9c6..f5b26de 100755
--- a/public/de/sitemap.xml
+++ b/public/de/sitemap.xml
@@ -3,11 +3,6 @@
xmlns:xhtml="http://www.w3.org/1999/xhtml">
http://markinstefan.xyz/de/authors/
-
-
- http://markinstefan.xyz/de/categories/
+
+ http://markinstefan.xyz/de/categories/
+
http://markinstefan.xyz/de/hochzeit/
http://markinstefan.xyz/tags/
-
+
diff --git a/public/rsvp-submit.php b/public/rsvp-submit.php
index a4a3e83..651eff5 100755
--- a/public/rsvp-submit.php
+++ b/public/rsvp-submit.php
@@ -14,15 +14,6 @@ $dotenv->safeLoad();
file_put_contents('/tmp/rsvp-debug.log', "3\n", FILE_APPEND);
-require __DIR__ . '/vendor/autoload.php';
-
-use PHPMailer\PHPMailer\PHPMailer;
-use PHPMailer\PHPMailer\Exception;
-use Dotenv\Dotenv;
-
-$dotenv = Dotenv::createImmutable(__DIR__ . '/../');
-$dotenv->safeLoad();
-
function checkboxArrayToString($value)
{
if (is_array($value) && count($value) > 0) {
diff --git a/public/ru/sitemap.xml b/public/ru/sitemap.xml
index 2f0b69a..e465074 100755
--- a/public/ru/sitemap.xml
+++ b/public/ru/sitemap.xml
@@ -54,6 +54,11 @@
/>
http://markinstefan.xyz/ru/tags/
+
-
http://markinstefan.xyz/ru/contact/
safeLoad();
+
+file_put_contents('/tmp/rsvp-debug.log', "3\n", FILE_APPEND);
+
+function checkboxArrayToString($value)
+{
+ if (is_array($value) && count($value) > 0) {
+ return implode(', ', $value);
+ }
+ return 'None';
+}
+
+function yesNo($value)
+{
+ return !empty($value) ? 'Yes' : 'No';
+}
+
+// Honeypot spam protection
+if (!empty($_POST['website'])) {
+ exit('Spam detected.');
+}
+
+// Privacy consent required
+if (empty($_POST['privacy'])) {
+ exit('Privacy consent required.');
+}
+
+// Personal
+$first_name = trim($_POST['first_name'] ?? '');
+$last_name = trim($_POST['last_name'] ?? '');
+$name = trim("$first_name $last_name");
+
+$email = trim($_POST['email'] ?? '');
+$phone = trim($_POST['phone'] ?? '');
+
+// Attendance
+$attendance = $_POST['attendance'] ?? 'Unknown';
+
+// Drinks
+$drinks = checkboxArrayToString($_POST['drinks'] ?? []);
+
+// Diet
+$diet = $_POST['diet'] ?? 'Not specified';
+
+// Allergies
+$allergies = checkboxArrayToString($_POST['allergies'] ?? []);
+$allergies_other = trim($_POST['allergies_other'] ?? '');
+
+// Organization
+$parking = yesNo($_POST['parking'] ?? '');
+$ride_needed = yesNo($_POST['ride_needed'] ?? '');
+$ride_offer = yesNo($_POST['ride_offer'] ?? '');
+$hotel = yesNo($_POST['hotel'] ?? '');
+$hotel_booked = yesNo($_POST['hotel_booked'] ?? '');
+
+// Memories
+$memory_card = yesNo($_POST['memory_card'] ?? '');
+$photo_link = yesNo($_POST['photo_link'] ?? '');
+
+// Entertainment
+$music_request = trim($_POST['music_request'] ?? '');
+$contribution = checkboxArrayToString($_POST['contribution'] ?? []);
+
+// Children
+$children = $_POST['children'] ?? 'No';
+$children_count = trim($_POST['children_count'] ?? '');
+$children_ages = trim($_POST['children_ages'] ?? '');
+
+// Message
+$message = trim($_POST['message'] ?? '');
+
+// UTF-8 conversion
+$fields = [
+ &$name,
+ &$email,
+ &$phone,
+ &$attendance,
+ &$drinks,
+ &$diet,
+ &$allergies,
+ &$allergies_other,
+ &$music_request,
+ &$contribution,
+ &$children,
+ &$children_count,
+ &$children_ages,
+ &$message
+];
+
+foreach ($fields as &$field) {
+ $field = mb_convert_encoding($field, 'UTF-8', 'auto');
+}
+
+file_put_contents('/tmp/rsvp-debug.log', "4\n", FILE_APPEND);
+$mail = new PHPMailer(true);
+
+try {
+
+ $mail->CharSet = 'UTF-8';
+
+ $mail->isSMTP();
+ $mail->Host = $_ENV['SMTP_HOST'];
+ $mail->SMTPAuth = true;
+ $mail->Username = $_ENV['SMTP_USER'];
+ $mail->Password = $_ENV['SMTP_PASS'];
+ $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
+ $mail->Port = (int)$_ENV['SMTP_PORT'];
+
+ $mail->setFrom($_ENV['FROM_EMAIL'], $_ENV['FROM_NAME']);
+ $mail->addAddress($_ENV['TO_EMAIL']);
+
+ $mail->Subject = mb_encode_mimeheader(
+ "Wedding RSVP: $name",
+ 'UTF-8'
+ );
+
+ $body = <<Body = $body;
+
+ file_put_contents('/tmp/rsvp-debug.log', "5\n", FILE_APPEND);
+ $mail->SMTPDebug = 2;
+$mail->Debugoutput = 'error_log';
+$mail->Timeout = 10;
+error_log("About to send mail");
+ $mail->send();
+error_log("Mail sent");
+ file_put_contents('/tmp/rsvp-debug.log', "6\n", FILE_APPEND);
+
+ header('Location: /thank-you/');
+ exit;
+
+} catch (Exception $e) {
+
+ echo "RSVP could not be sent. Mailer Error: {$mail->ErrorInfo}";
+}