mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-03 18:22:57 +00:00
4.9 KiB
4.9 KiB
SMTP Autentizace - Vylepšení Chybových Hlášení
Problém
SMTP selhalo s chybou 535 Authentication Failed bez jasného upozornění na kontrolu hesla.
Řešení
Implementovány lepší chybové zprávy a upozornění při selhání SMTP autentizace.
Provedené změny
1. Backend (internal/controllers/base_controller.go)
Endpoint: POST /api/v1/setup/validate-smtp
Vylepšeno rozpoznávání a hlášení běžných SMTP chyb:
- 535 / Authentication Failed: Upozornění na kontrolu uživatelského jména a hesla
- 530: Upozornění, že server vyžaduje autentizaci
- Connection refused: Upozornění na kontrolu hostu a portu
- TLS/Certificate errors: Upozornění na kontrolu nastavení šifrování
2. Frontend - Setup Page (frontend/src/pages/SetupPage.tsx)
Vylepšený Test SMTP tlačítko:
- Barevné označení: Tlačítko má modrou barvu (
colorScheme="blue") - Podrobnější úspěšná zpráva: Zobrazí se konkrétní potvrzení
- Specifická chybová zpráva pro 535:
- Titulek:
⚠️ Chyba autentizace (535) - Popis: Jasné upozornění zkontrolovat heslo a ujistit se, že je zkopírováno bez mezer
- Titulek:
- Delší doba zobrazení: Chybové zprávy se zobrazují 10 sekund místo 7
Nový info alert:
Přidán modře orámovaný informační box pod tlačítkem "Otestovat SMTP":
ℹ️ Před dokončením nastavení otestujte SMTP připojení.
Nejčastější chyba: nesprávné heslo. Ujistěte se, že heslo je zkopírováno přesně bez mezer.
3. Frontend - Admin Settings (frontend/src/pages/admin/SettingsAdminPage.tsx)
Vylepšeno hlášení chyb při testu e-mailu v administraci:
- Detekce 535 chyby autentizace
- Specifické upozornění na aplikační hesla pro některé poskytovatele
- Delší doba zobrazení chybových zpráv (10 sekund)
Testování
Test 1: Správné přihlašovací údaje
- Otevřete setup stránku (
/setup) - Vyplňte správné SMTP údaje
- Klikněte na "Otestovat SMTP"
- Očekávaný výsledek: Zelená notifikace "✓ SMTP ověřeno" s potvrzením
Test 2: Chybné heslo (535)
- Vyplňte správný host, port, username
- Zadejte záměrně špatné heslo
- Klikněte na "Otestovat SMTP"
- Očekávaný výsledek:
- Červená notifikace s titulem
⚠️ Chyba autentizace (535) - Text: "Zkontrolujte uživatelské jméno a zejména heslo. Ujistěte se, že heslo je správně zkopírované bez mezer."
- Zobrazí se na 10 sekund
- Červená notifikace s titulem
Test 3: Chybný host/port
- Zadejte neexistující SMTP server
- Klikněte na "Otestovat SMTP"
- Očekávaný výsledek: Chybová zpráva s upozorněním na kontrolu hostu a portu
Test 4: Admin settings test
- Přihlaste se do administrace
- Přejděte na Nastavení → Systém
- V sekci SMTP zadejte špatné heslo
- Klikněte "Odeslat test"
- Očekávaný výsledek: Podobné upozornění jako v setupu, včetně zmínky o aplikačních heslech
Běžné příčiny 535 chyby
- Špatné heslo: Nejčastější příčina
- Mezery v hesle: Kopírování z PDF nebo webové stránky může přidat skryté mezery
- Aplikační hesla: Gmail, Outlook.com a další vyžadují speciální aplikační heslo místo běžného
- 2FA povoleno: Pokud je zapnuta dvoufázová autentizace, běžné heslo nefunguje
- Uzamčený účet: Přílišné pokusy o přihlášení mohou dočasně uzamknout účet
Doporučení pro uživatele
- Vždy otestujte SMTP před dokončením setupu
- Zkopírujte heslo pomocí "zobrazit heslo" funkce a přímého označení (ne triple-click)
- U Gmailu použijte aplikační heslo
- U Outlooku/Office 365 použijte aplikační heslo
- Zkontrolujte, že port odpovídá typu šifrování:
- Port 465: SSL (zaškrtněte "Použít TLS")
- Port 587: STARTTLS (zaškrtněte "Použít TLS")
Technické detaily
Backend validace
// Rozpoznává tyto chyby:
- "535" nebo "authentication failed" → Chyba autentizace
- "530" → Vyžadována autentizace
- "connection refused" nebo "no route to host" → Problém s připojením
- "certificate" nebo "tls" → Problém s TLS/SSL
Frontend detekce
const isAuthError = errorMsg.includes('535') ||
errorMsg.toLowerCase().includes('authentication');
Související soubory
internal/controllers/base_controller.go- Backend SMTP validacefrontend/src/pages/SetupPage.tsx- Setup stránka s SMTP testemfrontend/src/pages/admin/SettingsAdminPage.tsx- Admin nastavení s testem e-mailufrontend/src/services/setup.ts- TypeScript typy a API volání
Vytvořeno: 2025-01-12
Verze: 1.0
Status: ✅ Implementováno a připraveno k testování