mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-04 02:32:57 +00:00
120 lines
4.9 KiB
Markdown
120 lines
4.9 KiB
Markdown
# 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í
|