Files
MyClub/DOCS/SMTP_AUTH_FIX.md
T
Tomáš Dvořák 12cba639b9 upload
2025-10-16 13:32:05 +02:00

4.9 KiB
Raw Blame History

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
  • 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

  1. Otevřete setup stránku (/setup)
  2. Vyplňte správné SMTP údaje
  3. Klikněte na "Otestovat SMTP"
  4. Očekávaný výsledek: Zelená notifikace "✓ SMTP ověřeno" s potvrzením

Test 2: Chybné heslo (535)

  1. Vyplňte správný host, port, username
  2. Zadejte záměrně špatné heslo
  3. Klikněte na "Otestovat SMTP"
  4. 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

Test 3: Chybný host/port

  1. Zadejte neexistující SMTP server
  2. Klikněte na "Otestovat SMTP"
  3. Očekávaný výsledek: Chybová zpráva s upozorněním na kontrolu hostu a portu

Test 4: Admin settings test

  1. Přihlaste se do administrace
  2. Přejděte na Nastavení → Systém
  3. V sekci SMTP zadejte špatné heslo
  4. Klikněte "Odeslat test"
  5. 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

  1. Špatné heslo: Nejčastější příčina
  2. Mezery v hesle: Kopírování z PDF nebo webové stránky může přidat skryté mezery
  3. Aplikační hesla: Gmail, Outlook.com a další vyžadují speciální aplikační heslo místo běžného
  4. 2FA povoleno: Pokud je zapnuta dvoufázová autentizace, běžné heslo nefunguje
  5. Uzamčený účet: Přílišné pokusy o přihlášení mohou dočasně uzamknout účet

Doporučení pro uživatele

  1. Vždy otestujte SMTP před dokončením setupu
  2. Zkopírujte heslo pomocí "zobrazit heslo" funkce a přímého označení (ne triple-click)
  3. U Gmailu použijte aplikační heslo
  4. U Outlooku/Office 365 použijte aplikační heslo
  5. 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 validace
  • frontend/src/pages/SetupPage.tsx - Setup stránka s SMTP testem
  • frontend/src/pages/admin/SettingsAdminPage.tsx - Admin nastavení s testem e-mailu
  • frontend/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í