diff --git a/.env b/.env index 445b9afc..a0a191f4 100644 --- a/.env +++ b/.env @@ -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 diff --git a/backend/services/mail/mail-service/src/main/kotlin/at/mocode/mail/service/MailServiceApplication.kt b/backend/services/mail/mail-service/src/main/kotlin/at/mocode/mail/service/MailServiceApplication.kt index 25e6314f..971c1dca 100644 --- a/backend/services/mail/mail-service/src/main/kotlin/at/mocode/mail/service/MailServiceApplication.kt +++ b/backend/services/mail/mail-service/src/main/kotlin/at/mocode/mail/service/MailServiceApplication.kt @@ -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("----------------------------------------------------------") } diff --git a/backend/services/mail/mail-service/src/main/resources/application.yaml b/backend/services/mail/mail-service/src/main/resources/application.yaml index 184a4dc5..fd9fdc6a 100644 --- a/backend/services/mail/mail-service/src/main/resources/application.yaml +++ b/backend/services/mail/mail-service/src/main/resources/application.yaml @@ -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: diff --git a/dc-planb.yaml b/dc-planb.yaml index 44431ff3..37a473bd 100644 --- a/dc-planb.yaml +++ b/dc-planb.yaml @@ -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} diff --git a/docs/03_Journal/2026-04-23_Plan-B-Formulare.md b/docs/03_Journal/2026-04-23_Plan-B-Formulare.md index 629252dc..d01e414b 100644 --- a/docs/03_Journal/2026-04-23_Plan-B-Formulare.md +++ b/docs/03_Journal/2026-04-23_Plan-B-Formulare.md @@ -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. diff --git a/frontend/shells/meldestelle-web/src/wasmJsMain/kotlin/at/mocode/frontend/shell/web/WebMainScreen.kt b/frontend/shells/meldestelle-web/src/wasmJsMain/kotlin/at/mocode/frontend/shell/web/WebMainScreen.kt index 24e54134..3ca773f7 100644 --- a/frontend/shells/meldestelle-web/src/wasmJsMain/kotlin/at/mocode/frontend/shell/web/WebMainScreen.kt +++ b/frontend/shells/meldestelle-web/src/wasmJsMain/kotlin/at/mocode/frontend/shell/web/WebMainScreen.kt @@ -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) )