• HINTERZIMMER
  • BIERGARTEN
  • OSTFLÜGEL
  • MONARCH
  • PALOMA
  • FAHIMI
  • BINUU
  • uᴉlɹǝq LOCATIONS
    • HINTERZIMMER
    • BIERGARTEN
    • OSTFLÜGEL
    • MONARCH
    • PALOMA
    • FAHIMI
    • BINUU
  • ▙▛▞▞▟▙▛▞

booking 1

booking 2

Location-Anfrage

Anfrage zur Vermietung

10 Personen
Mit dem Absenden erlauben Sie uns, die Anfrage per E-Mail zu erhalten und mit Ihnen in Kontakt zu treten.
// minimaler Node.js / Express Backend (save as server.js) // Benötigt: npm i express nodemailer body-parser const express = require('express'); const nodemailer = require('nodemailer'); const app = express(); app.use(express.json()); // Konfiguration per Umgebungsvariablen (empfohlen): // SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS, TARGET_EMAIL const transporter = nodemailer.createTransport({ host: process.env.SMTP_HOST, port: Number(process.env.SMTP_PORT||587), secure: process.env.SMTP_SECURE === 'true', // true wenn 465 auth: { user: process.env.SMTP_USER, pass: process.env.SMTP_PASS } }); app.post('/api/send', async (req, res) => { try{ const data = req.body || {}; const html = `

Neue Vermietungsanfrage

Name: ${escapeHtml(data.name)}

E-Mail: ${escapeHtml(data.email)}

Telefon: ${escapeHtml(data.phone)}

Datum: ${escapeHtml(data.date)} ${escapeHtml(data.start_time||'')} - ${escapeHtml(data.end_time||'')}

Personen: ${escapeHtml(String(data.persons))}

Lärm / Backline: ${escapeHtml(data.loud)}

Party-mäßig: ${escapeHtml(data.party)}

Nachricht:
${escapeHtml(data.message || '')}

`; await transporter.sendMail({ from: process.env.SMTP_FROM || 'anfrage@example.com', to: process.env.TARGET_EMAIL, subject: `Vermietungsanfrage: ${data.name || 'anonym'}`, html }); res.status(200).send('ok'); }catch(err){ console.error(err); res.status(500).send('send-failed'); } }); function escapeHtml(s=''){ return String(s).replaceAll('&','&').replaceAll('<','<').replaceAll('>','>').replaceAll('"','"'); } const PORT = process.env.PORT || 3000; app.listen(PORT, ()=> console.log('server running on', PORT));

booking 3

booking 4

booking 5

booking 6