mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-15 18:39:40 +02:00
Move inactive projects out of active workspace: - bauntown (community website) - maerchenzauber (AI story generation) - memoro (voice memo app) - news (news aggregation) - nutriphi (nutrition tracking) - reader (reading app) - uload (URL shortener) - wisekeep (AI wisdom extraction) Update CLAUDE.md documentation: - Add presi to active projects - Document archived projects section - Update workspace configuration Archived apps can be re-activated by moving back to apps/ 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
14 KiB
14 KiB
Vereinfachte E-Mail Templates für ulo.ad (ohne Emojis/Flags)
Wichtig: Diese Templates funktionieren garantiert!
Falls die komplexen Templates mit Emojis und Flags Probleme machen, verwende diese vereinfachten Versionen. Sie enthalten denselben Inhalt, aber ohne problematische Sonderzeichen.
1. E-Mail-Verifizierung Template (Vereinfacht)
Bereich: Verification template
Subject:
Bestätige deine E-Mail / Verify your email - ulo.ad
Body (HTML):
<div
style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto; padding: 20px; background-color: #f8fafc;"
>
<!-- Header -->
<div style="text-align: center; margin-bottom: 30px;">
<h1 style="color: #0ea5e9; font-size: 36px; margin: 0;">ulo.ad</h1>
<p style="color: #64748b; margin-top: 8px; font-size: 14px;">
Deine Links. Dein Style. Deine Kontrolle.<br />
Your links. Your style. Your control.
</p>
</div>
<!-- Main Content -->
<div
style="background: #ffffff; border-radius: 12px; padding: 30px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);"
>
<!-- German Section -->
<div style="margin-bottom: 30px;">
<h2 style="color: #0f172a; font-size: 24px; margin: 0 0 16px 0;">
[DE] Willkommen bei ulo.ad!
</h2>
<p style="color: #475569; font-size: 16px; line-height: 1.6;">
Vielen Dank für deine Registrierung! Bitte bestätige deine E-Mail-Adresse, um alle Features
freizuschalten.
</p>
</div>
<!-- English Section -->
<div style="margin-bottom: 30px;">
<h2 style="color: #0f172a; font-size: 24px; margin: 0 0 16px 0;">[EN] Welcome to ulo.ad!</h2>
<p style="color: #475569; font-size: 16px; line-height: 1.6;">
Thank you for signing up! Please verify your email address to unlock all features.
</p>
</div>
<!-- CTA Button -->
<div style="text-align: center; margin: 40px 0;">
<a
href="{APP_URL}/verify-email?token={TOKEN}"
style="display: inline-block; background: #0ea5e9; color: white;
padding: 16px 40px; border-radius: 8px; text-decoration: none;
font-weight: 600; font-size: 16px;"
>
E-Mail bestätigen / Verify Email
</a>
</div>
<!-- Alternative Link -->
<div style="margin-top: 30px; padding-top: 20px; border-top: 1px solid #e2e8f0;">
<p style="color: #94a3b8; font-size: 13px; margin-bottom: 8px;">
[DE] Falls der Button nicht funktioniert, kopiere diesen Link:<br />
[EN] If the button doesn't work, copy this link:
</p>
<p
style="background: #f8fafc; padding: 12px; border-radius: 6px; word-break: break-all; font-size: 12px; color: #0ea5e9;"
>
{APP_URL}/verify-email?token={TOKEN}
</p>
</div>
</div>
<!-- Footer -->
<div style="text-align: center; margin-top: 30px;">
<p style="color: #94a3b8; font-size: 12px;">
Diese E-Mail wurde an {EMAIL} gesendet.<br />
This email was sent to {EMAIL}.
</p>
<p style="color: #cbd5e1; font-size: 11px; margin-top: 20px;">© 2025 ulo.ad</p>
</div>
</div>
2. Passwort-Reset Template (Vereinfacht)
Bereich: Password reset template
Subject:
Passwort zurücksetzen / Reset password - ulo.ad
Body (HTML):
<div
style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto; padding: 20px; background-color: #f8fafc;"
>
<!-- Header -->
<div style="text-align: center; margin-bottom: 30px;">
<h1 style="color: #0ea5e9; font-size: 36px; margin: 0;">ulo.ad</h1>
</div>
<!-- Main Content -->
<div
style="background: #ffffff; border-radius: 12px; padding: 30px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);"
>
<!-- German Section -->
<div style="margin-bottom: 30px;">
<h2 style="color: #0f172a; font-size: 24px; margin: 0 0 16px 0;">
[DE] Passwort zurücksetzen
</h2>
<p style="color: #475569; font-size: 16px; line-height: 1.6;">
Du hast eine Anfrage zum Zurücksetzen deines Passworts gestellt. Klicke auf den Button
unten, um ein neues Passwort zu wählen.
</p>
</div>
<!-- English Section -->
<div style="margin-bottom: 30px;">
<h2 style="color: #0f172a; font-size: 24px; margin: 0 0 16px 0;">[EN] Reset Password</h2>
<p style="color: #475569; font-size: 16px; line-height: 1.6;">
You have requested to reset your password. Click the button below to choose a new password.
</p>
</div>
<!-- CTA Button -->
<div style="text-align: center; margin: 40px 0;">
<a
href="{APP_URL}/reset-password?token={TOKEN}"
style="display: inline-block; background: #0ea5e9; color: white;
padding: 16px 40px; border-radius: 8px; text-decoration: none;
font-weight: 600; font-size: 16px;"
>
Neues Passwort festlegen / Set New Password
</a>
</div>
<!-- Warning -->
<div
style="background: #fef2f2; border: 1px solid #fecaca; border-radius: 8px; padding: 16px; margin: 20px 0;"
>
<p style="color: #991b1b; font-size: 14px; margin: 0;">
<strong>[DE]</strong> Dieser Link ist nur 1 Stunde gültig.<br />
<strong>[EN]</strong> This link is only valid for 1 hour.
</p>
</div>
<!-- Alternative Link -->
<div style="margin-top: 30px; padding-top: 20px; border-top: 1px solid #e2e8f0;">
<p style="color: #94a3b8; font-size: 13px; margin-bottom: 8px;">
[DE] Falls der Button nicht funktioniert, kopiere diesen Link:<br />
[EN] If the button doesn't work, copy this link:
</p>
<p
style="background: #f8fafc; padding: 12px; border-radius: 6px; word-break: break-all; font-size: 12px; color: #0ea5e9;"
>
{APP_URL}/reset-password?token={TOKEN}
</p>
</div>
</div>
<!-- Footer -->
<div style="text-align: center; margin-top: 30px;">
<p style="color: #94a3b8; font-size: 12px;">
[DE] Du hast kein neues Passwort angefordert? Ignoriere diese E-Mail.<br />
[EN] You didn't request a new password? Ignore this email.
</p>
<p style="color: #cbd5e1; font-size: 11px; margin-top: 20px;">© 2025 ulo.ad</p>
</div>
</div>
3. E-Mail-Änderung Template (Vereinfacht)
Bereich: Email change template
Subject:
E-Mail-Adresse ändern / Change email address - ulo.ad
Body (HTML):
<div
style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto; padding: 20px; background-color: #f8fafc;"
>
<!-- Header -->
<div style="text-align: center; margin-bottom: 30px;">
<h1 style="color: #0ea5e9; font-size: 36px; margin: 0;">ulo.ad</h1>
</div>
<!-- Main Content -->
<div
style="background: #ffffff; border-radius: 12px; padding: 30px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);"
>
<!-- German Section -->
<div style="margin-bottom: 30px;">
<h2 style="color: #0f172a; font-size: 24px; margin: 0 0 16px 0;">
[DE] E-Mail-Adresse ändern
</h2>
<p style="color: #475569; font-size: 16px; line-height: 1.6;">
Du hast eine Änderung deiner E-Mail-Adresse beantragt. Bitte bestätige die neue
E-Mail-Adresse.
</p>
</div>
<!-- English Section -->
<div style="margin-bottom: 30px;">
<h2 style="color: #0f172a; font-size: 24px; margin: 0 0 16px 0;">
[EN] Change Email Address
</h2>
<p style="color: #475569; font-size: 16px; line-height: 1.6;">
You have requested to change your email address. Please confirm the new email address.
</p>
</div>
<!-- Info Box -->
<div style="background: #f0f9ff; border-radius: 8px; padding: 16px; margin: 20px 0;">
<p style="color: #0369a1; font-size: 14px; margin: 0;">
<strong>Old Email:</strong> {EMAIL}<br />
<strong>New Email:</strong> {NEW_EMAIL}
</p>
</div>
<!-- CTA Button -->
<div style="text-align: center; margin: 40px 0;">
<a
href="{APP_URL}/_/#/auth/confirm-email-change/{TOKEN}"
style="display: inline-block; background: #0ea5e9; color: white;
padding: 16px 40px; border-radius: 8px; text-decoration: none;
font-weight: 600; font-size: 16px;"
>
Neue E-Mail bestätigen / Confirm New Email
</a>
</div>
<!-- Alternative Link -->
<div style="margin-top: 30px; padding-top: 20px; border-top: 1px solid #e2e8f0;">
<p style="color: #94a3b8; font-size: 13px; margin-bottom: 8px;">
[DE] Falls der Button nicht funktioniert, kopiere diesen Link:<br />
[EN] If the button doesn't work, copy this link:
</p>
<p
style="background: #f8fafc; padding: 12px; border-radius: 6px; word-break: break-all; font-size: 12px; color: #0ea5e9;"
>
{APP_URL}/_/#/auth/confirm-email-change/{TOKEN}
</p>
</div>
</div>
<!-- Footer -->
<div style="text-align: center; margin-top: 30px;">
<p style="color: #cbd5e1; font-size: 11px;">© 2025 ulo.ad</p>
</div>
</div>
4. OTP (One-Time Password) Template (Vereinfacht)
Bereich: OTP template
Subject:
Einmal-Passwort / One-Time Password: {OTP} - ulo.ad
Body (HTML):
<div
style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto; padding: 20px; background-color: #f8fafc;"
>
<!-- Header -->
<div style="text-align: center; margin-bottom: 30px;">
<h1 style="color: #0ea5e9; font-size: 36px; margin: 0;">ulo.ad</h1>
</div>
<!-- Main Content -->
<div
style="background: #ffffff; border-radius: 12px; padding: 30px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);"
>
<h2 style="color: #0f172a; font-size: 24px; margin: 0 0 16px 0; text-align: center;">
[DE] Dein Einmal-Passwort<br />
[EN] Your One-Time Password
</h2>
<p style="color: #475569; font-size: 16px; text-align: center;">
[DE] Verwende diesen Code für die Anmeldung:<br />
[EN] Use this code to log in:
</p>
<!-- OTP Code -->
<div
style="background: #0ea5e9; border-radius: 8px; padding: 20px; margin: 30px 0; text-align: center;"
>
<p
style="color: white; font-size: 32px; margin: 0; font-weight: bold; letter-spacing: 4px; font-family: monospace;"
>
{OTP}
</p>
</div>
<!-- Warning -->
<div
style="background: #fef2f2; border: 1px solid #fecaca; border-radius: 8px; padding: 16px; text-align: center;"
>
<p style="color: #991b1b; font-size: 14px; margin: 0;">
[DE] Dieser Code ist nur 3 Minuten gültig<br />
[EN] This code is only valid for 3 minutes
</p>
</div>
</div>
<!-- Footer -->
<div style="text-align: center; margin-top: 30px;">
<p style="color: #cbd5e1; font-size: 11px;">© 2025 ulo.ad</p>
</div>
</div>
5. Login-Alert Template (Vereinfacht)
Bereich: Auth alert template
Subject:
Neue Anmeldung / New login - ulo.ad
Body (HTML):
<div
style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto; padding: 20px; background-color: #f8fafc;"
>
<!-- Header -->
<div style="text-align: center; margin-bottom: 30px;">
<h1 style="color: #0ea5e9; font-size: 36px; margin: 0;">ulo.ad</h1>
</div>
<!-- Main Content -->
<div
style="background: #ffffff; border-radius: 12px; padding: 30px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);"
>
<h2 style="color: #0f172a; font-size: 24px; margin: 0 0 16px 0;">
[DE] Neue Anmeldung erkannt<br />
[EN] New Login Detected
</h2>
<p style="color: #475569; font-size: 16px; line-height: 1.6;">
[DE] Wir haben eine Anmeldung von einem neuen Standort erkannt.<br />
[EN] We detected a login from a new location.
</p>
<!-- Login Details -->
<div style="background: #f8fafc; border-radius: 8px; padding: 20px; margin: 20px 0;">
<p style="color: #0f172a; font-size: 14px; margin: 0 0 12px 0; font-weight: 600;">
Login Details:
</p>
<ul style="color: #475569; font-size: 14px; margin: 0; padding-left: 20px;">
<li>Time: {TIME}</li>
<li>Browser: {BROWSER}</li>
<li>Device: {DEVICE}</li>
<li>Location: {LOCATION}</li>
<li>IP: {IP}</li>
</ul>
</div>
<!-- Action Box -->
<div
style="background: #dcfce7; border: 1px solid #86efac; border-radius: 8px; padding: 16px; margin: 20px 0;"
>
<p style="color: #166534; font-size: 14px; margin: 0;">
<strong>[DE]</strong> Warst du das? Dann kannst du diese E-Mail ignorieren.<br />
<strong>[EN]</strong> Was this you? Then you can ignore this email.
</p>
</div>
<!-- Warning Box -->
<div
style="background: #fef2f2; border: 1px solid #fecaca; border-radius: 8px; padding: 16px; margin: 20px 0;"
>
<p style="color: #991b1b; font-size: 14px; margin: 0 0 12px 0;">
<strong>[DE]</strong> Warst du das NICHT? Ändere sofort dein Passwort!<br />
<strong>[EN]</strong> Was this NOT you? Change your password immediately!
</p>
<div style="text-align: center; margin-top: 16px;">
<a
href="{APP_URL}/forgot-password"
style="display: inline-block; background: #dc2626; color: white;
padding: 12px 24px; border-radius: 6px; text-decoration: none;
font-weight: 600; font-size: 14px;"
>
Passwort ändern / Change Password
</a>
</div>
</div>
</div>
<!-- Footer -->
<div style="text-align: center; margin-top: 30px;">
<p style="color: #94a3b8; font-size: 12px;">
Diese Sicherheitsbenachrichtigung wurde an {EMAIL} gesendet.<br />
This security notification was sent to {EMAIL}.
</p>
<p style="color: #cbd5e1; font-size: 11px; margin-top: 20px;">© 2025 ulo.ad</p>
</div>
</div>
Wichtige Hinweise
Warum vereinfachte Templates?
- Keine Emojis/Flags: Manche SMTP-Server haben Probleme mit Unicode-Zeichen wie 🇩🇪, 🇬🇧, 🔗, etc.
- Einfacheres HTML: Weniger verschachtelte Divs und Styles
- Kleinere Dateigröße: Reduzierte HTML-Größe für bessere Zustellbarkeit
- Bessere Kompatibilität: Funktioniert mit allen E-Mail-Clients
Verwendung
- In PocketBase Admin (
http://localhost:8090/_/) - Collections → users → Options
- Jeweiliges Template-Feld suchen
- HTML aus dieser Datei kopieren und einfügen
- Speichern und testen
Test-Reihenfolge
- Zuerst: Vereinfachtes Template verwenden
- Wenn es funktioniert: Problem lag an den Emojis/komplexem HTML
- Optional: Schrittweise Emojis wieder hinzufügen und testen
URLs beachten
- Verification:
{APP_URL}/verify-email?token={TOKEN} - Password Reset:
{APP_URL}/reset-password?token={TOKEN} - Email Change: Standard PocketBase URL (nicht ändern)
Erstellt: 15. Januar 2025
Für: ulo.ad E-Mail-System (Fallback-Templates)
Version: 1.0 Simplified