Restored email look
This commit is contained in:
+44
-15
@@ -75,14 +75,15 @@ export async function submitRegistration(prevState: any, formData: FormData) {
|
|||||||
|
|
||||||
// 5. Nodemailer setup
|
// 5. Nodemailer setup
|
||||||
const transporter = nodemailer.createTransport({
|
const transporter = nodemailer.createTransport({
|
||||||
host: process.env.SMTP_HOST || '10.10.0.113', // Använder .env med fallback
|
host: process.env.SMTP_HOST || 'localhost',
|
||||||
port: 25,
|
port: 25,
|
||||||
secure: false,
|
secure: false,
|
||||||
tls: { rejectUnauthorized: false }
|
tls: { rejectUnauthorized: false }
|
||||||
});
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const dateStr = new Date().toLocaleString('sv-SE');
|
const dateStr = new Date().toISOString().replace('T', ' ').substring(0, 19);
|
||||||
|
const cleanMessage = rawData.message ? rawData.message.replace(/[\r\n;]/g, " ") : "";
|
||||||
|
|
||||||
// Mail till klubben
|
// Mail till klubben
|
||||||
await transporter.sendMail({
|
await transporter.sendMail({
|
||||||
@@ -91,17 +92,44 @@ export async function submitRegistration(prevState: any, formData: FormData) {
|
|||||||
replyTo: rawData.email,
|
replyTo: rawData.email,
|
||||||
subject: `Anmälan: ${rawData.team}`,
|
subject: `Anmälan: ${rawData.team}`,
|
||||||
html: `
|
html: `
|
||||||
<div style="font-family: sans-serif; max-width: 600px; border: 1px solid #eee; padding: 20px;">
|
<html>
|
||||||
<h2 style="color: #406185;">Ny anmälan: ${rawData.team}</h2>
|
<body style='font-family: Arial, sans-serif; line-height: 1.6; color: #333; max-width: 800px; padding: 20px;'>
|
||||||
<p><strong>Kontaktperson:</strong> ${rawData.name}</p>
|
<h2 style='color: #39979f;'>Beach-anmälan</h2>
|
||||||
<p><strong>E-post:</strong> ${rawData.email}</p>
|
|
||||||
<p><strong>Telefon:</strong> ${formattedTel}</p>
|
<table style='width: 100%; max-width: 600px; border-collapse: collapse;'>
|
||||||
<p><strong>Antal spelare:</strong> ${rawData.count}</p>
|
<tr><td style='padding: 5px; font-weight: bold; width: 150px;'>Lagnamn:</td><td>${rawData.team}</td></tr>
|
||||||
<p><strong>Nivå:</strong> ${rawData.level}</p>
|
<tr><td style='padding: 5px; font-weight: bold;'>Kontakt:</td><td>${rawData.name}</td></tr>
|
||||||
<p><strong>Meddelande:</strong><br>${rawData.message || 'Inget meddelande'}</p>
|
<tr><td style='padding: 5px; font-weight: bold;'>E-post:</td><td>${rawData.email}</td></tr>
|
||||||
<hr>
|
<tr><td style='padding: 5px; font-weight: bold;'>Telefon:</td><td>${formattedTel}</td></tr>
|
||||||
<p style="font-size: 10px; color: #999;">Skickat: ${dateStr}</p>
|
<tr><td style='padding: 5px; font-weight: bold;'>Spelare:</td><td>${rawData.count}</td></tr>
|
||||||
|
<tr><td style='padding: 5px; font-weight: bold;'>Nivå:</td><td>${rawData.level}</td></tr>
|
||||||
|
</table>
|
||||||
|
<p><strong>Meddelande:</strong><br>${rawData.message ? rawData.message.replace(/\n/g, '<br>') : '<em>Inget meddelande</em>'}</p>
|
||||||
|
|
||||||
|
<hr style='border: none; border-top: 1px solid #ddd; margin: 30px 0;'>
|
||||||
|
|
||||||
|
<details style="margin-top: 20px;">
|
||||||
|
<summary style="background-color: #fdb84b; color: #fff; padding: 12px 20px; border-radius: 8px; font-weight: bold; cursor: pointer; display: inline-block; font-size: 14px; text-transform: uppercase; letter-spacing: 1px;">
|
||||||
|
Visa kopierbar tabell för Excel
|
||||||
|
</summary>
|
||||||
|
|
||||||
|
<div style="margin-top: 15px; overflow-x: auto;">
|
||||||
|
<table border='1' style='border-collapse: collapse; font-family: Calibri, sans-serif; font-size: 11pt; width: 100%; text-align: left;'>
|
||||||
|
<tr style="background-color: #f9f9f9;">
|
||||||
|
<td style='padding: 8px; border: 1px solid #ccc;'>${rawData.team}</td>
|
||||||
|
<td style='padding: 8px; border: 1px solid #ccc;'>${rawData.count}</td>
|
||||||
|
<td style='padding: 8px; border: 1px solid #ccc;'>${rawData.level}</td>
|
||||||
|
<td style='padding: 8px; border: 1px solid #ccc;'>${rawData.name}</td>
|
||||||
|
<td style='padding: 8px; border: 1px solid #ccc;'>${formattedTel}</td>
|
||||||
|
<td style='padding: 8px; border: 1px solid #ccc;'>${rawData.email}</td>
|
||||||
|
<td style='padding: 8px; border: 1px solid #ccc;'>${dateStr}</td>
|
||||||
|
<td style='padding: 8px; border: 1px solid #ccc;'>${cleanMessage}</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
</details>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
`
|
`
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -109,11 +137,12 @@ export async function submitRegistration(prevState: any, formData: FormData) {
|
|||||||
await transporter.sendMail({
|
await transporter.sendMail({
|
||||||
from: `"LVS" <no-reply@lerbergetsvolleyboll.se>`,
|
from: `"LVS" <no-reply@lerbergetsvolleyboll.se>`,
|
||||||
to: rawData.email,
|
to: rawData.email,
|
||||||
|
replyTo: `"LVS Beach" <beach@lerbergetsvolleyboll.se>`,
|
||||||
subject: `Vi har tagit emot din anmälan för ${rawData.team}`,
|
subject: `Vi har tagit emot din anmälan för ${rawData.team}`,
|
||||||
html: `<div style="font-family: sans-serif; padding: 20px;">
|
html: `<div style="font-family: sans-serif; padding: 20px; color: #333;">
|
||||||
<h2>Hej ${rawData.name}!</h2>
|
<h2 style="color: #39979f;">Hej ${rawData.name}!</h2>
|
||||||
<p>Tack för din anmälan till beachturneringen. Vi återkommer så snart vi har granskat era uppgifter.</p>
|
<p>Tack för din anmälan till beachturneringen. Vi återkommer så snart vi har granskat era uppgifter.</p>
|
||||||
<p>Ses på stranden!<br><strong>Lerbergets Volleybollsällskap</strong></p>
|
<p>Ses på stranden!<br><strong style="color: #fdb84b;">Lerbergets Volleybollsällskap</strong></p>
|
||||||
</div>`
|
</div>`
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user