feat: add join confirmation and mail templating
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Simon 2026-03-09 18:15:12 +01:00
parent 3672ef0d03
commit 6385fbc831
Signed by: simon
GPG key ID: 40E7A58C4AA1EDB2
24 changed files with 585 additions and 53 deletions

View file

@ -0,0 +1,18 @@
<div style="color: #111827;">
<p style="margin: 0 0 16px; font-size: 16px; line-height: 1.5;">
{gettext(
"We have received your membership request. To complete it, please click the link below."
)}
</p>
<p style="margin: 0 0 24px;">
<a
href={@confirm_url}
style="display: inline-block; padding: 12px 24px; background-color: #2563eb; color: #ffffff; text-decoration: none; border-radius: 6px; font-weight: 500;"
>
{gettext("Confirm my request")}
</a>
</p>
<p style="margin: 0; font-size: 14px; color: #6b7280;">
{gettext("If you did not submit this request, you can ignore this email.")}
</p>
</div>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>{assigns[:subject] || "Mila"}</title>
</head>
<body style="margin: 0; padding: 0; font-family: system-ui, -apple-system, sans-serif; background-color: #f3f4f6;">
<table
role="presentation"
width="100%"
cellspacing="0"
cellpadding="0"
style="max-width: 600px; margin: 0 auto;"
>
<tr>
<td style="padding: 24px 16px 16px;">
<div style="font-size: 18px; font-weight: 600; color: #111827;">Mila</div>
</td>
</tr>
<tr>
<td style="padding: 16px; background-color: #ffffff; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.08);">
{@inner_content}
</td>
</tr>
<tr>
<td style="padding: 16px 24px; font-size: 12px; color: #6b7280;">
© {DateTime.utc_now().year} Mila · Mitgliederverwaltung
</td>
</tr>
</table>
</body>
</html>

View file

@ -0,0 +1,18 @@
<div style="color: #111827;">
<p style="margin: 0 0 16px; font-size: 16px; line-height: 1.5;">
{gettext("You requested a password reset. Click the link below to set a new password.")}
</p>
<p style="margin: 0 0 24px;">
<a
href={@reset_url}
style="display: inline-block; padding: 12px 24px; background-color: #2563eb; color: #ffffff; text-decoration: none; border-radius: 6px; font-weight: 500;"
>
{gettext("Reset password")}
</a>
</p>
<p style="margin: 0; font-size: 14px; color: #6b7280;">
{gettext(
"If you did not request this, you can ignore this email. Your password will remain unchanged."
)}
</p>
</div>

View file

@ -0,0 +1,16 @@
<div style="color: #111827;">
<p style="margin: 0 0 16px; font-size: 16px; line-height: 1.5;">
{gettext("Please confirm your email address by clicking the link below.")}
</p>
<p style="margin: 0 0 24px;">
<a
href={@confirm_url}
style="display: inline-block; padding: 12px 24px; background-color: #2563eb; color: #ffffff; text-decoration: none; border-radius: 6px; font-weight: 500;"
>
{gettext("Confirm my email")}
</a>
</p>
<p style="margin: 0; font-size: 14px; color: #6b7280;">
{gettext("If you did not create an account, you can ignore this email.")}
</p>
</div>