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

120 lines
4.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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](https://support.google.com/accounts/answer/185833)
4. U Outlooku/Office 365 použijte [aplikační heslo](https://support.microsoft.com/en-us/account-billing/manage-app-passwords-for-two-step-verification-d6dc8c6d-4bf7-4851-ad95-6d07799387e9)
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
```go
// 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
```typescript
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í