mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-04 02:32:57 +00:00
upload
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
# 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í
|
||||
Reference in New Issue
Block a user