Skip to content

Commit

Permalink
fix email sending for Vendor and Artist
Browse files Browse the repository at this point in the history
  • Loading branch information
Miningmark committed Dec 11, 2024
1 parent 1f2954e commit 95fc5a0
Show file tree
Hide file tree
Showing 8 changed files with 209 additions and 9 deletions.
23 changes: 23 additions & 0 deletions src/pages/api/registrationAsArtist.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import mysql from "mysql2/promise";
import path from "path";
import fs from "fs/promises";
import formidable from "formidable";
import emailRegistrationArtist from "@/util/email_registrationArtist";

export const config = {
api: {
Expand Down Expand Up @@ -280,6 +281,28 @@ export default async function handler(req, res) {

const [result] = await connection.query(query, values);

// Erfolgsmeldung zurückgeben

emailRegistrationArtist({
name,
lastName,
email,
vendorName,
artistName,
street,
postalCode,
city,
country,
typeOfArt,
descriptionOfStand,
standSize,
additionalExhibitorTicket,
wlan,
website,
instagram,
message,
});

res.status(200).json({ message: "Daten erfolgreich eingefügt." });
} catch (error) {
console.error("Fehler beim Einfügen der Daten:", err);
Expand Down
21 changes: 21 additions & 0 deletions src/pages/api/registrationAsVendor.js
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,27 @@ export default async function handler(req, res) {

const [result] = await connection.query(query, values);

// Erfolgsmeldung zurückgeben
emailRegistrationVendor(
name,
lastName,
email,
vendorName,
street,
postalCode,
city,
country,
typeOfAssortment,
descriptionOfStand,
standSize,
additionalExhibitorTicket,
strom,
wlan,
website,
instagram,
message
);

res.status(200).json({ message: "Daten erfolgreich eingefügt." });
} catch (error) {
console.error("Fehler beim Einfügen der Daten:", err);
Expand Down
6 changes: 3 additions & 3 deletions src/pages/das-sind-wir.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,11 @@ export default function DasSindWir() {
<RectangleContainer center={1} color={1}>
<h2>Yumeko</h2>
<p>
Unser Maskottchen Yumeko ist ein fester Teil des YumeKai Teams und seit Anfang an
mit dabei.
Unsere Maskottchens Yumeko und Hiru sind ein fester Teil des YumeKai Teams und seit
Anfang an mit dabei.
</p>
<UnstyledLink href={"/maskottchen"}>
<StyledButton>mehr über mich</StyledButton>
<StyledButton>mehr über uns</StyledButton>
</UnstyledLink>
</RectangleContainer>
<br />
Expand Down
2 changes: 1 addition & 1 deletion src/pages/faq.js
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ export default function FAQ() {
}
/>
<TabTitle
title="Kann ich mein Ticket für übertragen?"
title="Kann ich mein Ticket übertragen?"
content="Bis einen Tag vor Veranstaltungsbeginn können die Ticketinhaber selbstständig geändert werden. Den Link dazu findet ihr in eurer Bestellbestätigung der bestellenden Person. Dabei wird ein neues digitales Ticket generiert, was dem neuen Inhaber des Tickets zur Verfügung gestellt werden muss. Wer danach ein Ticket umschreiben möchte, muss dies vor Ort an der Tageskasse anfragen und es ist nur möglich für Tickets, die noch nicht gescannt wurden."
/>
<TabTitle
Expand Down
12 changes: 9 additions & 3 deletions src/pages/presse.js
Original file line number Diff line number Diff line change
Expand Up @@ -155,14 +155,18 @@ export default function Presse() {
<StyledLink href="#akkreditierung">Online-Akkreditierung</StyledLink>
</li>
</ul>
<Spacer />

<Spacer id="ansprechpartner" />
<h2>Ansprechpartner Presse</h2>

<p>
Das YumeKai-Presseteam erreichen Sie unter{" "}
<StyledLink href="mailto:info@yumekai.de.">info@yumekai.de.</StyledLink>
</p>
<Spacer />

<Spacer id="richtlinien" />
<h2>Akkreditierungsrichtlinien</h2>

<p>
Eine Akkreditierung erfolgt ausschließlich zum Zwecke{" "}
<strong>der journalistischen Berichterstattung</strong>. Deshalb behält sich die YumeKai die
Expand Down Expand Up @@ -213,8 +217,10 @@ export default function Presse() {
Journalisten-Akkreditierungen in der Vergangenheit, bei denen keine Berichte entstanden
sind.
</p>
<Spacer />

<Spacer id="akkreditierung" />
<h2>Online Akkreditierung</h2>

<p>
Felder mit <RequiredNote>*</RequiredNote> sind Pflichtfelder.
</p>
Expand Down
2 changes: 0 additions & 2 deletions src/pages/registration/registrationAsVendor.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,6 @@ export default function RegistrationAsVendor() {
const [success, setSuccess] = useState("");
const [fileError, setFileError] = useState("");

console.log(standSize);

const refs = {
name: useRef(null),
lastName: useRef(null),
Expand Down
3 changes: 3 additions & 0 deletions src/util/email_registrationArtist.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ export default function emailRegistrationArtist({
descriptionOfStand,
standSize,
additionalExhibitorTicket,
wlan,
website,
instagram,
message,
Expand Down Expand Up @@ -82,6 +83,8 @@ export default function emailRegistrationArtist({
<br />
Zusätzliches Aussteller-Ticket: ${(additionalExhibitorTicket && "Ja") || "Nein"}
<br />
WLAN: ${(wlan && "Ja") || "Nein"}
<br />
Webseite: ${website || "Keine Webseite angegeben"}
<br />
Instagram: ${instagram || "Kein Instagram angegeben"}
Expand Down
149 changes: 149 additions & 0 deletions src/util/email_registrationVendor.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
`use server`;

import path from "path";
import { sendMail } from "@/util/sendEmail";

export default function emailRegistrationVendor({
name,
lastName,
email,
vendorName,
street,
postalCode,
city,
country,
typeOfAssortment,
descriptionOfStand,
standSize,
additionalExhibitorTicket,
strom,
wlan,
website,
instagram,
message,
}) {
const imagePath = path.join(process.cwd(), "public", "assets", "logo", "yumekai_256px.png");

// HTML-Inhalt der E-Mail
const htmlContent = `
<!doctype html>
<html>
<body>
<div
style="background-color:#F2F5F7;color:#242424;font-family:'Helvetica Neue', 'Arial Nova', 'Nimbus Sans', Arial, sans-serif;font-size:16px;font-weight:400;letter-spacing:0.15008px;line-height:1.5;margin:0;padding:32px 0;min-height:100%;width:100%"
>
<table
align="center"
width="100%"
style="margin:0 auto;max-width:600px;background-color:#FFFFFF"
role="presentation"
cellspacing="0"
cellpadding="0"
border="0"
>
<tbody>
<tr>
<td>
<div style="font-weight:normal;padding:0px 24px 16px 24px">
<br />
Hi ${name},
<br />
</div>
<div style="font-weight:normal;padding:0px 24px 16px 24px">
<br/>
Du hast dich für einen Händlerstand auf der YumeKai 2025 beworben. Wir haben deine Anmeldung erhalten und werden uns kurz nach dem ende der Anmeldefrist bei dir melden.
Nachfolgend findest du eine Kopie deiner Anmeldung:
<br />
<br />
Name: ${name}
<br />
Nachname: ${lastName}
<br />
E-Mail: ${email}
<br />
Firmenname: ${vendorName || "Kein Firmenname angegeben"}
<br />
Straße: ${street}
<br />
Postleitzahl: ${postalCode}
<br />
Stadt: ${city}
<br />
Land: ${country}
<br />
Produktsortiment: ${typeOfAssortment}
<br />
Beschreibung des Standes: ${descriptionOfStand}
<br />
Standgröße: ${standSize}
<br />
Zusätzliches Aussteller-Ticket: ${additionalExhibitorTicket}
<br/>
Strom: ${strom ? "Ja" : "Nein"}
<br/>
WLAN: ${wlan ? "Ja" : "Nein"}
<br />
Webseite: ${website || "Keine Webseite angegeben"}
<br />
Instagram: ${instagram || "Kein Instagram angegeben"}
<br />
Nachricht: ${message || "Keine Nachricht angegeben"}
<br />
</div>
</td>
</tr>
<tr>
<td>
<div style="font-weight:normal;front-size:8px;padding:0px 24px 16px 24px">
<br />
<br />
<div class="default-style">
<img style="max-width: 25%;" src="cid:yumeKaiLogo" alt="YumeKai Logo" />
</div>
<div class="default-style">Impressum:
<a href="https://yumekai.de/Impressum/"> www.Yumekai.de/Impressum</a>
<br />Kontakt: <a class="mailto-link" href="mailto:Info@yumekai.de">info@yumekai.de</a>
</div>
<div class="default-style">DreamFly-Events UG Haftungsbeschränkt</div>
<div class="default-style">Sitz in: Trunkelsberg</div>
<div class="default-style">Registergericht: Amtsgericht Memmingen</div>
<div class="default-style">Registernummer: <span class="fontWeightBold"> HRB 20785</span></div>
<div class="default-style"><span class="fontWeightBold">USt-id: DE366635441</span></div>
<div class="default-style">Vertreten durch Geschäftsführer: Markus Sibbe </div>
<div class="default-style">Änderungen und Irrtümer vorbehalten.</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
`;

const mailOptions = {
from: "test@miningmark.de",
to: email,
subject: "Anmeldung für einen Händlerstand auf der YumeKai 2025",
html: htmlContent,
attachments: [
{
filename: "YumeKai_Logo.png", // Der Name des Anhangs
path: imagePath, // Der Pfad zum Bild
cid: "yumeKaiLogo", // Das cid-Tag für die Verlinkung im HTML
},
],
};

const mail = {
to: email,
subject: "Anmeldung für einen Händlerstand auf der YumeKai 2025",
text: `Firmenname: ${vendorName}`,
};

sendMail(mail, mailOptions);
}

0 comments on commit 95fc5a0

Please sign in to comment.