### fix: 38 aktualisiere SMTP-Parameter und verbessere Fehlerbehandlung
All checks were successful
Build and Publish Docker Images / build-and-push (., backend/services/mail/Dockerfile, mail-service, mail-service) (push) Successful in 5m48s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 3m52s

- **application.yaml:** SMTP-Parameter auf Umgebungsvariablen umgestellt.
- **MailServiceApplication:** Logging erweitert, Passwort maskiert.
- **WebMainScreen:** Fehlerbehandlung und Logging für API-Antworten optimiert, Versionsmarker auf `v2026-04-23.38 - SMTP & UI FINAL FORCE` aktualisiert.
This commit is contained in:
Stefan Mogeritsch 2026-04-23 19:08:07 +02:00
parent 897394e27e
commit 34bd42a009
3 changed files with 23 additions and 19 deletions

View File

@ -33,14 +33,19 @@ class MailServiceApplication(private val env: Environment) {
val springPort = env.getProperty("server.port", "8083") val springPort = env.getProperty("server.port", "8083")
val appName = env.getProperty("spring.application.name", "mail-service") val appName = env.getProperty("spring.application.name", "mail-service")
val mailHost = env.getProperty("spring.mail.host", "N/A") val mailHost = env.getProperty("spring.mail.host")
val mailPort = env.getProperty("spring.mail.port", "N/A") val mailPort = env.getProperty("spring.mail.port")
val mailUser = env.getProperty("spring.mail.username", "N/A") val mailUser = env.getProperty("spring.mail.username")
val mailPass = env.getProperty("spring.mail.password")?.take(3) + "***"
val envHost = System.getenv("SPRING_MAIL_HOST")
val envPort = System.getenv("SPRING_MAIL_PORT")
log.info("----------------------------------------------------------") log.info("----------------------------------------------------------")
log.info("Application '{}' is running!", appName) log.info("Application '{}' is running!", appName)
log.info("Spring Management Port: {}", springPort) log.info("Spring Management Port: {}", springPort)
log.info("SMTP Config (from Env): host={}, port={}, user={}", mailHost, mailPort, mailUser) 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("Profiles: {}", env.activeProfiles.joinToString(", ")) log.info("Profiles: {}", env.activeProfiles.joinToString(", "))
log.info("----------------------------------------------------------") log.info("----------------------------------------------------------")
} }

View File

@ -11,16 +11,16 @@ spring:
ddl-auto: update ddl-auto: update
show-sql: true show-sql: true
mail: mail:
host: smtp.world4you.com host: ${SPRING_MAIL_HOST:smtp.world4you.com}
port: 587 port: ${SPRING_MAIL_PORT:587}
username: online-nennen@mo-code.at username: ${SPRING_MAIL_USERNAME:online-nennen@mo-code.at}
password: Mogi#2reiten password: ${SPRING_MAIL_PASSWORD:Mogi#2reiten}
properties: properties:
mail: mail:
smtp: smtp:
auth: true auth: ${SPRING_MAIL_PROPERTIES_MAIL_SMTP_AUTH:true}
starttls: starttls:
enable: true enable: ${SPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_ENABLE:true}
cloud: cloud:
consul: consul:

View File

@ -105,16 +105,15 @@ fun MainAppContent() {
scope.launch { scope.launch {
println("Starte Senden der Nennung für ${payload.vorname} ${payload.nachname}...") println("Starte Senden der Nennung für ${payload.vorname} ${payload.nachname}...")
val result = nennungRepository.sendeNennung(screen.turnierId.toString(), payload) val result = nennungRepository.sendeNennung(screen.turnierId.toString(), payload)
if (result.isSuccess) { val success = result.isSuccess
println("Nennung erfolgreich gesendet. Rufe onResult(true) auf.") val error = result.exceptionOrNull()?.message
onResult(true, null)
println("API Result im MainScreen: success=$success, error=$error")
onResult(success, error)
if (success) {
println("Wechsle zum Erfolgsscreen für ${payload.email}") println("Wechsle zum Erfolgsscreen für ${payload.email}")
currentScreen = WebScreen.Erfolg(payload.email) currentScreen = WebScreen.Erfolg(payload.email)
} else {
val error = result.exceptionOrNull()?.message
println("Nennung fehlgeschlagen: $error. Rufe onResult(false) auf.")
onResult(false, error)
println("Fehler beim Senden der Nennung: $error")
} }
} }
}, },
@ -130,7 +129,7 @@ fun MainAppContent() {
// Dezentraler Versions-Marker in der unteren rechten Ecke // Dezentraler Versions-Marker in der unteren rechten Ecke
Box(modifier = Modifier.fillMaxSize().padding(8.dp), contentAlignment = Alignment.BottomEnd) { Box(modifier = Modifier.fillMaxSize().padding(8.dp), contentAlignment = Alignment.BottomEnd) {
Text( Text(
text = "v2026-04-23.37 - SMTP HARD-CODED", text = "v2026-04-23.38 - SMTP & UI FINAL FORCE",
style = MaterialTheme.typography.labelSmall, style = MaterialTheme.typography.labelSmall,
color = Color.LightGray.copy(alpha = 0.5f) color = Color.LightGray.copy(alpha = 0.5f)
) )