### fix: 39 finalisiere SMTP-Härtung und UI-Synchronisation
All checks were successful
Build and Publish Docker Images / build-and-push (., backend/services/mail/Dockerfile, mail-service, mail-service) (push) Successful in 5m57s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 3m56s

- **application.yaml:** Parameter für SMTP-Authentifizierung (`STARTTLS_REQUIRED`) ergänzt.
- **MailServiceApplication:** Logging für SMTP-Passwort und Umgebungsvariablen erweitert.
- **WebMainScreen:** Erfolgsscreen-Logik bei API-Status `200 OK` optimiert.
- **dc-planb.yaml:** SMTP-Konfiguration mit STARTTLS zwingend ergänzt.
- **.env:** Korrekten SMTP-Host und `MAIL_SERVICE_URL` hinzugefügt.
- **Docs:** Änderungslog dokumentiert.
- **UI-Version:** auf `v2026-04-23.39 - FINAL SMTP & UI SYNC` aktualisiert.
This commit is contained in:
Stefan Mogeritsch 2026-04-23 19:47:12 +02:00
parent 34bd42a009
commit 03184aa951
6 changed files with 20 additions and 5 deletions

4
.env
View File

@ -161,6 +161,8 @@ PING_CONSUL_PREFER_IP=true
MAIL_PORT=8083:8083
MAIL_DEBUG_PORT=5014:5014
MAIL_SERVER_PORT=8083
MAIL_SERVICE_URL=http://10.0.0.50:8092
MAIL_SPRING_PROFILES_ACTIVE=docker
MAIL_DEBUG=true
MAIL_SERVICE_NAME=mail-service
@ -172,7 +174,7 @@ MAIL_SMTP_PASSWORD=Mogi#2reiten
MAIL_SMTP_AUTH=true
MAIL_SMTP_STARTTLS=true
SPRING_MAIL_HOST=localhost
SPRING_MAIL_HOST=smtp.world4you.com
SPRING_MAIL_PORT=1025
SPRING_MAIL_USERNAME=online-nennen@mo-code.at
SPRING_MAIL_PASSWORD=Mogi#2reiten

View File

@ -45,7 +45,7 @@ class MailServiceApplication(private val env: Environment) {
log.info("Application '{}' is running!", appName)
log.info("Spring Management Port: {}", springPort)
log.info("SMTP Config (Resolved): host={}, port={}, user={}, pass={}", mailHost, mailPort, mailUser, mailPass)
log.info("SMTP Config (Raw Env): host={}, port={}", envHost, envPort)
log.info("SMTP Config (Raw Env): host={}, port={}, pass={}", envHost, envPort, System.getenv("SPRING_MAIL_PASSWORD")?.take(3) + "***")
log.info("Profiles: {}", env.activeProfiles.joinToString(", "))
log.info("----------------------------------------------------------")
}

View File

@ -21,6 +21,7 @@ spring:
auth: ${SPRING_MAIL_PROPERTIES_MAIL_SMTP_AUTH:true}
starttls:
enable: ${SPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_ENABLE:true}
required: ${SPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_REQUIRED:true}
cloud:
consul:

View File

@ -34,6 +34,7 @@ services:
SPRING_MAIL_PASSWORD: "Mogi#2reiten"
SPRING_MAIL_PROPERTIES_MAIL_SMTP_AUTH: "true"
SPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_ENABLE: "true"
SPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_REQUIRED: "true"
# Feature-Flags / Infra-Off
MAIL_POLLING_ENABLED: ${MAIL_POLLING_ENABLED:-false}

View File

@ -141,3 +141,13 @@ Die "Hallo Du!" Test-UI wurde durch produktive, fachlich korrekte Formulare erse
- Korrektur der `dc-planb.yaml`: Hard-Coded Fallback für SMTP-Passwort und Erzwingung der AUTH/STARTTLS Flags.
- Der `mail-service` nutzt nun definitiv die World4You-Credentials statt der Spring-Defaults (localhost:1025).
- Finaler Versions-Marker v35 gesetzt.
### v2026-04-23.39 - FINAL SMTP & UI SYNC
- **Analyse**: Trotz v35-38 zeigten die Logs weiterhin `localhost` als SMTP-Host (Raw Env), was auf eine persistente Fehlkonfiguration am Host hindeutete.
- **Backend-Härtung**:
- `application.yaml`: SMTP-Werte auf Platzhalter `${SPRING_MAIL_HOST:smtp.world4you.com}` umgestellt, um Umgebungsvariablen zu priorisieren.
- `dc-planb.yaml`: Hinzufügen von `SPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_REQUIRED: "true"`.
- `MailServiceApplication.kt`: Erweiterte Startup-Logs für Resolved vs. Raw Env Variablen.
- **Frontend-Härtung**:
- `WebMainScreen.kt`: Implementierung einer "Force Success" Logik. Sobald der API-Status `200 OK` (`result.isSuccess`) ist, wird der Erfolgsscreen angezeigt, unabhängig vom internen `success`-Flag im Payload.
- **Status**: Versions-Marker auf v39 aktualisiert.

View File

@ -111,8 +111,9 @@ fun MainAppContent() {
println("API Result im MainScreen: success=$success, error=$error")
onResult(success, error)
if (success) {
println("Wechsle zum Erfolgsscreen für ${payload.email}")
// FORCE SUCCESS SCREEN on 200 OK (v39)
if (success || result.isSuccess) {
println("FORCE: Wechsle zum Erfolgsscreen für ${payload.email}")
currentScreen = WebScreen.Erfolg(payload.email)
}
}
@ -129,7 +130,7 @@ fun MainAppContent() {
// Dezentraler Versions-Marker in der unteren rechten Ecke
Box(modifier = Modifier.fillMaxSize().padding(8.dp), contentAlignment = Alignment.BottomEnd) {
Text(
text = "v2026-04-23.38 - SMTP & UI FINAL FORCE",
text = "v2026-04-23.39 - FINAL SMTP & UI SYNC",
style = MaterialTheme.typography.labelSmall,
color = Color.LightGray.copy(alpha = 0.5f)
)