This commit is contained in:
Bastian Wagner
2026-07-17 14:07:04 +02:00
parent 8c6ad294b2
commit 45a41c2077
64 changed files with 2032 additions and 83 deletions

View File

@@ -0,0 +1,5 @@
{{#if greeting}}<p style="font-size:16px; line-height:1.6; margin:0 0 18px;">{{greeting}}</p>{{/if}}
<p style="font-size:16px; line-height:1.6; margin:0 0 18px;">{{intro}}</p>
{{#if action}}{{> button label=action.label url=action.url}}{{/if}}
{{#if action}}{{> secondary-link url=action.url}}{{/if}}
{{#if infoBox}}{{> info-box text=infoBox.text}}{{/if}}

View File

@@ -0,0 +1,11 @@
{{title}}
{{#if greeting}}{{greeting}}
{{/if}}{{intro}}
{{#if action}}{{action.label}}:
{{{action.url}}}
{{/if}}
Support: {{branding.supportEmail}}

View File

@@ -0,0 +1,5 @@
<p style="font-size:16px; line-height:1.6; margin:0 0 18px;">{{intro}}</p>
{{> button label=action.label url=action.url}}
{{> secondary-link url=confirmUrl}}
<p style="font-size:15px; line-height:1.6; margin:22px 0 0;">Der Link ist gueltig bis <strong>{{expiresAtText}}</strong>.</p>
{{#if infoBox}}{{> info-box text=infoBox.text}}{{/if}}

View File

@@ -0,0 +1,10 @@
{{title}}
{{intro}}
E-Mail-Adresse bestaetigen:
{{{confirmUrl}}}
Der Link ist gueltig bis {{expiresAtText}}.
Falls du diese Aenderung nicht angefordert hast, kontaktiere bitte den Support: {{branding.supportEmail}}

View File

@@ -0,0 +1,5 @@
{{#if intro}}<p style="font-size:16px; line-height:1.6; margin:0 0 18px;">{{intro}}</p>{{/if}}
{{#each paragraphs}}<p style="font-size:15px; line-height:1.6; margin:0 0 16px;">{{this}}</p>{{/each}}
{{#if infoBox}}{{> info-box text=infoBox.text}}{{/if}}
{{#if action}}{{> button label=action.label url=action.url}}{{> secondary-link url=action.url}}{{/if}}
{{#if secondaryLink}}<p style="font-size:15px; line-height:1.6; margin:20px 0 0;"><a href="{{secondaryLink.url}}" style="color:{{branding.primaryColor}};">{{secondaryLink.label}}</a></p>{{/if}}

View File

@@ -0,0 +1,14 @@
{{title}}
{{#if intro}}{{intro}}
{{/if}}{{#each paragraphs}}{{this}}
{{/each}}{{#if infoBox}}{{infoBox.text}}
{{/if}}{{#if action}}{{action.label}}:
{{{action.url}}}
{{/if}}{{#if secondaryLink}}{{secondaryLink.label}}:
{{{secondaryLink.url}}}
{{/if}}

View File

@@ -0,0 +1,6 @@
<p style="font-size:16px; line-height:1.6; margin:0 0 18px;">{{intro}}</p>
{{#if invitedBy}}<p style="font-size:15px; line-height:1.6; margin:0 0 18px;">Eingeladen von: <strong>{{invitedBy}}</strong></p>{{/if}}
{{> button label=action.label url=action.url}}
{{> secondary-link url=invitationUrl}}
{{#if infoBox}}{{> info-box text=infoBox.text}}{{/if}}
{{#if warningBox}}{{> warning-box text=warningBox.text}}{{/if}}

View File

@@ -0,0 +1,11 @@
{{title}}
{{intro}}
{{#if invitedBy}}Eingeladen von: {{invitedBy}}
{{/if}}
Einladung annehmen:
{{{invitationUrl}}}
{{#if expiresAtText}}Diese Einladung ist gueltig bis {{expiresAtText}}.
{{/if}}
Falls du diese Einladung nicht erwartest, ignoriere diese E-Mail.

View File

@@ -0,0 +1,41 @@
<!doctype html>
<html lang="{{#if locale}}{{locale}}{{else}}de{{/if}}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="x-apple-disable-message-reformatting">
<title>{{title}}</title>
<style>
@media screen and (max-width: 640px) {
.outer { padding: 18px 10px !important; }
.container { width: 100% !important; }
.content { padding: 28px 22px !important; }
.button { display: block !important; width: 100% !important; box-sizing: border-box !important; }
}
</style>
</head>
<body style="margin:0; padding:0; background:#f4f7f9; color:#1f2933; font-family:Arial, Helvetica, sans-serif;">
<div style="display:none; max-height:0; overflow:hidden; opacity:0;">{{preheader}}</div>
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="background:#f4f7f9; border-collapse:collapse;">
<tr>
<td class="outer" align="center" style="padding:32px 16px;">
<table class="container" role="presentation" width="640" cellpadding="0" cellspacing="0" style="width:640px; max-width:640px; border-collapse:collapse;">
<tr>
<td>{{> header}}</td>
</tr>
<tr>
<td class="content" style="background:#ffffff; border:1px solid #dbe4ea; border-radius:8px; padding:40px 44px;">
<h1 style="font-size:24px; line-height:1.25; margin:0 0 12px; color:#17212b;">{{title}}</h1>
{{#if subtitle}}<p style="font-size:16px; line-height:1.5; margin:0 0 24px; color:#516173;">{{subtitle}}</p>{{/if}}
{{{body}}}
</td>
</tr>
<tr>
<td>{{> footer}}</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

View File

@@ -0,0 +1,7 @@
<table role="presentation" cellpadding="0" cellspacing="0" style="border-collapse:collapse; margin:26px 0;">
<tr>
<td>
<a class="button" href="{{url}}" style="background:{{branding.primaryColor}}; border-radius:6px; color:#ffffff; display:inline-block; font-size:16px; font-weight:700; line-height:20px; padding:14px 22px; text-align:center; text-decoration:none;">{{label}}</a>
</td>
</tr>
</table>

View File

@@ -0,0 +1,3 @@
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="border-collapse:collapse; margin:24px 0;">
<tr><td style="border-top:1px solid #e5edf2; font-size:0; line-height:0;">&nbsp;</td></tr>
</table>

View File

@@ -0,0 +1,14 @@
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="border-collapse:collapse;">
<tr>
<td style="padding:20px 4px 0; color:#6b7785; font-size:12px; line-height:1.55;">
<p style="margin:0 0 8px;">Diese E-Mail wurde automatisch erstellt. Bitte antworte nicht direkt auf diese Nachricht.</p>
{{#if footerNote}}<p style="margin:0 0 8px;">{{footerNote}}</p>{{/if}}
<p style="margin:0 0 8px;">Support: <a href="mailto:{{branding.supportEmail}}" style="color:{{branding.primaryColor}};">{{branding.supportEmail}}</a></p>
<p style="margin:0;">
{{branding.companyName}}
{{#if branding.imprintUrl}} · <a href="{{branding.imprintUrl}}" style="color:{{branding.primaryColor}};">Impressum</a>{{/if}}
{{#if branding.privacyUrl}} · <a href="{{branding.privacyUrl}}" style="color:{{branding.primaryColor}};">Datenschutz</a>{{/if}}
</p>
</td>
</tr>
</table>

View File

@@ -0,0 +1,11 @@
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="border-collapse:collapse; margin:0 0 18px;">
<tr>
<td style="padding:0 4px 10px;">
{{#if branding.logoUrl}}
<img src="{{branding.logoUrl}}" alt="{{branding.productName}}" width="140" style="border:0; display:block; max-width:140px; height:auto;">
{{else}}
<div style="font-size:18px; font-weight:700; color:#17212b;">{{branding.productName}}</div>
{{/if}}
</td>
</tr>
</table>

View File

@@ -0,0 +1,8 @@
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="border-collapse:collapse; margin:24px 0;">
<tr>
<td style="background:#eef8f7; border:1px solid #c7e3df; border-radius:6px; color:#224f4d; font-size:14px; line-height:1.5; padding:14px 16px;">
{{#if title}}<strong style="display:block; margin:0 0 4px;">{{title}}</strong>{{/if}}
{{text}}
</td>
</tr>
</table>

View File

@@ -0,0 +1,8 @@
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="border-collapse:collapse; margin:20px 0;">
{{#each items}}
<tr>
<td style="border-top:1px solid #e5edf2; color:#617080; font-size:13px; padding:10px 12px 10px 0; width:34%;">{{label}}</td>
<td style="border-top:1px solid #e5edf2; color:#1f2933; font-size:14px; padding:10px 0;">{{value}}</td>
</tr>
{{/each}}
</table>

View File

@@ -0,0 +1,4 @@
<p style="font-size:13px; line-height:1.5; margin:18px 0 0; color:#617080;">
Falls die Schaltflaeche nicht funktioniert, kopiere diesen Link in deinen Browser:<br>
<a href="{{url}}" style="color:{{branding.primaryColor}}; overflow-wrap:anywhere; word-break:break-word;">{{url}}</a>
</p>

View File

@@ -0,0 +1,8 @@
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="border-collapse:collapse; margin:24px 0;">
<tr>
<td style="background:#fff7ed; border:1px solid #fed7aa; border-radius:6px; color:#7c2d12; font-size:14px; line-height:1.5; padding:14px 16px;">
{{#if title}}<strong style="display:block; margin:0 0 4px;">{{title}}</strong>{{/if}}
{{text}}
</td>
</tr>
</table>

View File

@@ -0,0 +1,7 @@
{{#if greeting}}<p style="font-size:16px; line-height:1.6; margin:0 0 18px;">{{greeting}}</p>{{/if}}
<p style="font-size:16px; line-height:1.6; margin:0 0 18px;">{{intro}}</p>
{{> button label=action.label url=action.url}}
{{> secondary-link url=resetUrl}}
<p style="font-size:15px; line-height:1.6; margin:22px 0 0;">Der Link ist gueltig bis <strong>{{expiresAtText}}</strong>.</p>
{{#if warningBox}}{{> warning-box title=warningBox.title text=warningBox.text}}{{/if}}
<p style="font-size:15px; line-height:1.6; margin:0;">Bei Fragen hilft dir der Support unter <a href="mailto:{{branding.supportEmail}}" style="color:{{branding.primaryColor}};">{{branding.supportEmail}}</a>.</p>

View File

@@ -0,0 +1,14 @@
{{title}}
{{#if greeting}}{{greeting}}
{{/if}}{{intro}}
Passwort zuruecksetzen:
{{{resetUrl}}}
Der Link ist gueltig bis {{expiresAtText}}.
Falls du diese Anfrage nicht selbst gestellt hast, kannst du diese E-Mail ignorieren. Dein bestehendes Passwort bleibt unveraendert.
Support: {{branding.supportEmail}}

View File

@@ -0,0 +1,13 @@
<p style="font-size:16px; line-height:1.6; margin:0 0 18px;">{{intro}}</p>
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="border-collapse:collapse; margin:20px 0;">
<tr>
<td style="border-top:1px solid #e5edf2; color:#617080; font-size:13px; padding:10px 12px 10px 0; width:34%;">Name</td>
<td style="border-top:1px solid #e5edf2; color:#1f2933; font-size:14px; padding:10px 0;">{{registration.displayName}}</td>
</tr>
<tr>
<td style="border-top:1px solid #e5edf2; color:#617080; font-size:13px; padding:10px 12px 10px 0; width:34%;">E-Mail</td>
<td style="border-top:1px solid #e5edf2; color:#1f2933; font-size:14px; padding:10px 0;">{{registration.email}}</td>
</tr>
</table>
{{> button label=action.label url=action.url}}
{{> secondary-link url=adminUrl}}

View File

@@ -0,0 +1,9 @@
{{title}}
{{intro}}
Name: {{registration.displayName}}
E-Mail: {{registration.email}}
Admin-Bereich:
{{{adminUrl}}}

View File

@@ -0,0 +1,5 @@
<p style="font-size:16px; line-height:1.6; margin:0 0 18px;">{{intro}}</p>
{{> button label=action.label url=action.url}}
{{> secondary-link url=verificationUrl}}
<p style="font-size:15px; line-height:1.6; margin:22px 0 0;">Der Link ist gueltig bis <strong>{{expiresAtText}}</strong>.</p>
{{#if infoBox}}{{> info-box text=infoBox.text}}{{/if}}

View File

@@ -0,0 +1,10 @@
{{title}}
{{intro}}
E-Mail bestaetigen:
{{{verificationUrl}}}
Der Link ist gueltig bis {{expiresAtText}}.
Falls du diese Registrierung nicht gestartet hast, kannst du diese E-Mail ignorieren.

View File

@@ -0,0 +1,4 @@
{{#if intro}}<p style="font-size:16px; line-height:1.6; margin:0 0 18px;">{{intro}}</p>{{/if}}
{{#each paragraphs}}<p style="font-size:15px; line-height:1.6; margin:0 0 16px;">{{this}}</p>{{/each}}
{{#if warningBox}}{{> warning-box text=warningBox.text}}{{/if}}
{{#if action}}{{> button label=action.label url=action.url}}{{> secondary-link url=action.url}}{{/if}}

View File

@@ -0,0 +1,12 @@
{{title}}
{{#if intro}}{{intro}}
{{/if}}{{#each paragraphs}}{{this}}
{{/each}}{{#if warningBox}}Warnung:
{{warningBox.text}}
{{/if}}{{#if action}}{{action.label}}:
{{{action.url}}}
{{/if}}