Update: Bestätigungsseite
This commit is contained in:
145
index.js
145
index.js
@ -2,11 +2,12 @@ const dotenv = require("dotenv");
|
|||||||
dotenv.config();
|
dotenv.config();
|
||||||
|
|
||||||
const express = require("express");
|
const express = require("express");
|
||||||
const bodyParser = require('body-parser');
|
const bodyParser = require("body-parser");
|
||||||
const cors = require("cors");
|
const cors = require("cors");
|
||||||
|
|
||||||
const nodemailer = require("nodemailer");
|
const nodemailer = require("nodemailer");
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
|
const path = require("path");
|
||||||
|
|
||||||
const transporter = nodemailer.createTransport({
|
const transporter = nodemailer.createTransport({
|
||||||
host: "smtp-relay.brevo.com",
|
host: "smtp-relay.brevo.com",
|
||||||
@ -15,82 +16,90 @@ const transporter = nodemailer.createTransport({
|
|||||||
auth: {
|
auth: {
|
||||||
user: process.env.smtp_user,
|
user: process.env.smtp_user,
|
||||||
pass: process.env.smtp_pass,
|
pass: process.env.smtp_pass,
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
const port = 3000;
|
const port = 3000;
|
||||||
|
|
||||||
app.use(cors({
|
app.use(
|
||||||
origin: process.env.origin,
|
cors({
|
||||||
}))
|
origin: process.env.origin,
|
||||||
|
})
|
||||||
|
);
|
||||||
app.use(express.static("assets"));
|
app.use(express.static("assets"));
|
||||||
app.use(bodyParser.urlencoded({ extended: true }));
|
app.use(bodyParser.urlencoded({ extended: true }));
|
||||||
|
|
||||||
app.post("/post", (req, res) => {
|
app.post("/post", (req, res) => {
|
||||||
fs.writeFile(`./data/${req.body.firstname}-${req.body.lastname}.json`, JSON.stringify(req.body), (err) => {
|
fs.writeFile(
|
||||||
console.log(err)
|
`./data/${req.body.firstname}-${req.body.lastname}.json`,
|
||||||
})
|
JSON.stringify(req.body),
|
||||||
|
(err) => {
|
||||||
|
console.log(err);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
transporter.sendMail({
|
transporter.sendMail(
|
||||||
from: "Alumnihub <alumnihub@kocoder.xyz>",
|
{
|
||||||
to: `${req.body.firstname} ${req.body.lastname} <${req.body.email}>`,
|
from: "Alumnihub <alumnihub@kocoder.xyz>",
|
||||||
envelope: {
|
to: `${req.body.firstname} ${req.body.lastname} <${req.body.email}>`,
|
||||||
from: "alumnihub@kocoder.xyz",
|
envelope: {
|
||||||
to: req.body.email,
|
from: "alumnihub@kocoder.xyz",
|
||||||
|
to: req.body.email,
|
||||||
|
},
|
||||||
|
subject: "Deine Anmeldung für's Absolvententreffen.",
|
||||||
|
text: `
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
<body style="font-family: Arial, sans-serif; line-height: 1.5;">
|
||||||
|
|
||||||
|
<p>Liebe/r ${req.body.firstname},</p>
|
||||||
|
|
||||||
|
<p>vielen Dank für deine Anmeldung zum Absolvent*innentreffen am<br>
|
||||||
|
📅 <strong>Donnerstag, 25. September 2025</strong>,<br>
|
||||||
|
⏰ <strong>von 17:00 bis 20:00 Uhr</strong><br>
|
||||||
|
📍 im Speisesaal des SZU, Ungargasse 69, 1030 Wien.</p>
|
||||||
|
|
||||||
|
<p>Wir freuen uns sehr, dich an diesem besonderen Abend begrüßen zu dürfen!</p>
|
||||||
|
|
||||||
|
<p>Dich erwarten spannende Einblicke in aktuelle Entwicklungen am SZU, interessante Führungen sowie die Möglichkeit zum Wiedersehen, Austauschen und gemeinsamen Erinnern. Für das leibliche Wohl sorgt eine engagierte Abschlussklasse – der Reinerlös unterstützt ihre Abschlussreise. <strong>Bitte bring dafür Bargeld mit.</strong></p>
|
||||||
|
|
||||||
|
<p>📸 Wenn du Erinnerungsfotos aus deiner Schulzeit beisteuern möchtest, sende sie uns gerne vorab an:<br>
|
||||||
|
📧 <a href="mailto:szu.absolventinnentreffen@outlook.com">szu.absolventinnentreffen@outlook.com</a></p>
|
||||||
|
|
||||||
|
<p>❗Falls du wider Erwarten doch nicht teilnehmen kannst, bitten wir dich um eine kurze Absage per E-Mail an dieselbe Adresse. So können wir besser planen – vielen Dank!</p>
|
||||||
|
|
||||||
|
<p>Wir freuen uns auf einen stimmungsvollen Abend mit dir und auf viele schöne Begegnungen!</p>
|
||||||
|
|
||||||
|
<p>Herzliche Grüße<br>
|
||||||
|
Gerti Brindlmayer & Lukas Aigner<br>
|
||||||
|
im Namen des Teams des Absolvent*innen- & Fördervereins des SZU</p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
`,
|
||||||
},
|
},
|
||||||
subject: "Anmeldungs für's Absolvententreffen.",
|
(err, info) => {
|
||||||
text:
|
if (err) return res.send(err);
|
||||||
`
|
}
|
||||||
<!DOCTYPE html>
|
);
|
||||||
<html lang="de">
|
|
||||||
<body style="font-family: Arial, sans-serif; line-height: 1.5;">
|
|
||||||
|
|
||||||
<p>Liebe/r ${req.body.firstname},</p>
|
return res.sendFile("bestaetigung.html", {
|
||||||
|
root: path.join(__dirname, "views"),
|
||||||
<p>vielen Dank für deine Anmeldung zum Absolvent*innentreffen am<br>
|
|
||||||
📅 <strong>Donnerstag, 25. September 2025</strong>,<br>
|
|
||||||
⏰ <strong>von 17:00 bis 20:00 Uhr</strong><br>
|
|
||||||
📍 im Speisesaal des SZU, Ungargasse 69, 1030 Wien.</p>
|
|
||||||
|
|
||||||
<p>Wir freuen uns sehr, dich an diesem besonderen Abend begrüßen zu dürfen!</p>
|
|
||||||
|
|
||||||
<p>Dich erwarten spannende Einblicke in aktuelle Entwicklungen am SZU, interessante Führungen sowie die Möglichkeit zum Wiedersehen, Austauschen und gemeinsamen Erinnern. Für das leibliche Wohl sorgt eine engagierte Abschlussklasse – der Reinerlös unterstützt ihre Abschlussreise. <strong>Bitte bring dafür Bargeld mit.</strong></p>
|
|
||||||
|
|
||||||
<p>📸 Wenn du Erinnerungsfotos aus deiner Schulzeit beisteuern möchtest, sende sie uns gerne vorab an:<br>
|
|
||||||
📧 <a href="mailto:szu.absolventinnentreffen@outlook.com">szu.absolventinnentreffen@outlook.com</a></p>
|
|
||||||
|
|
||||||
<p>❗Falls du wider Erwarten doch nicht teilnehmen kannst, bitten wir dich um eine kurze Absage per E-Mail an dieselbe Adresse. So können wir besser planen – vielen Dank!</p>
|
|
||||||
|
|
||||||
<p>Wir freuen uns auf einen stimmungsvollen Abend mit dir und auf viele schöne Begegnungen!</p>
|
|
||||||
|
|
||||||
<p>Herzliche Grüße<br>
|
|
||||||
Gerti Brindlmayer & Lukas Aigner<br>
|
|
||||||
im Namen des Teams des Absolvent*innen- & Fördervereins des SZU</p>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
`,
|
|
||||||
}, (err, info) => {
|
|
||||||
if (err) return res.send(err);
|
|
||||||
});
|
});
|
||||||
return res.send("Du wurdest erfolgreich angemeldet!");
|
|
||||||
});
|
});
|
||||||
|
|
||||||
app.post("/cancel", (req, res) => {
|
app.post("/cancel", (req, res) => {
|
||||||
fs.writeFile(`./data/${req.body.firstname}-${req.body.lastname}.json`, JSON.stringify(req.body), (err) => {
|
transporter.sendMail(
|
||||||
console.log(err)
|
{
|
||||||
})
|
from: "Alumnihub <alumnihub@kocoder.xyz>",
|
||||||
|
to: `${req.body.firstname} ${req.body.lastname} <${req.body.email}>`,
|
||||||
transporter.sendMail({
|
envelope: {
|
||||||
from: "Alumnihub <alumnihub@kocoder.xyz>",
|
from: "alumnihub@kocoder.xyz",
|
||||||
to: `${req.body.firstname} ${req.body.lastname} <${req.body.email}>`,
|
to: req.body.email,
|
||||||
envelope: {
|
},
|
||||||
from: "alumnihub@kocoder.xyz",
|
subject: "Deine Absage für's Absolvententreffen.",
|
||||||
to: req.body.email,
|
text: `
|
||||||
},
|
|
||||||
subject: "Anmeldungs für's Absolvententreffen.",
|
|
||||||
text: `
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="de">
|
<html lang="de">
|
||||||
<body style="font-family: Arial, sans-serif; line-height: 1.5;">
|
<body style="font-family: Arial, sans-serif; line-height: 1.5;">
|
||||||
@ -111,12 +120,16 @@ app.post("/cancel", (req, res) => {
|
|||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
`,
|
`,
|
||||||
}, (err, info) => {
|
},
|
||||||
if (err) return res.send(err);
|
(err, info) => {
|
||||||
});
|
if (err) return res.send(err);
|
||||||
return res.send("Du hast erfolgreich abgesagt !");
|
}
|
||||||
});
|
);
|
||||||
|
|
||||||
|
return res.sendFile("bestaetigung.html", {
|
||||||
|
root: path.join(__dirname, "views"),
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
app.listen(port, () => {
|
app.listen(port, () => {
|
||||||
console.log(`Example app listening on port ${port}`);
|
console.log(`Example app listening on port ${port}`);
|
||||||
|
24
views/bestaetigung.html
Normal file
24
views/bestaetigung.html
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="de">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>Absolvententreffen 2025</title>
|
||||||
|
<link rel="stylesheet" href="styles.css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<img src="logo.png" alt="HTL Ungargasse Logo" class="logo" />
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<h1>Absolvententreffen</h1>
|
||||||
|
<h2>2025</h2>
|
||||||
|
<div class="buttons">
|
||||||
|
Vielen Dank für das hinterlassen der Informationen zu dir und das
|
||||||
|
Interesse am Absolventinnentreffen. Wir werden dich über folgende
|
||||||
|
Veranstaltungen informieren.
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
Reference in New Issue
Block a user