feat(mail-service): Port-Konflikt behoben, SMTP-Konfig optimiert und dynamisches Plus-Addressing eingefügt

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
2026-04-15 13:44:28 +02:00
parent d0b756694b
commit a5f5e7a24b
8 changed files with 101 additions and 15 deletions
@@ -6,6 +6,7 @@ import jakarta.validation.Valid
import jakarta.validation.constraints.Email
import jakarta.validation.constraints.NotBlank
import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Value
import org.springframework.mail.SimpleMailMessage
import org.springframework.mail.javamail.JavaMailSender
import org.springframework.web.bind.annotation.*
@@ -45,6 +46,9 @@ class MailController(
) {
private val logger = LoggerFactory.getLogger(MailController::class.java)
@Value("\${spring.mail.username}")
private lateinit var baseMailAddress: String
@PostMapping("/nennung")
fun receiveNennung(@Valid @RequestBody request: NennungRequest) {
logger.info("Nennung via API erhalten: ${request.vorname} ${request.nachname} für Turnier ${request.turnierNr}")
@@ -70,7 +74,16 @@ class MailController(
// Bestätigung an Reiter senden
try {
val message = SimpleMailMessage()
message.from = "online-nennen@mo-code.at"
// Dynamische Absenderadresse mit Plus-Addressing (z.B. online-nennen+26128@mo-code.at)
val dynamicFrom = try {
val (user, domain) = baseMailAddress.split("@")
"$user+${request.turnierNr}@$domain"
} catch (e: Exception) {
baseMailAddress
}
message.from = dynamicFrom
message.setTo(request.email)
message.subject = "Bestätigung: Ihre Online-Nennung für Turnier ${request.turnierNr}"
message.text = """
@@ -11,19 +11,12 @@ spring:
ddl-auto: update
show-sql: true
mail:
host: ${SPRING_MAIL_HOST:imap.world4you.com}
port: ${SPRING_MAIL_PORT:993}
host: ${SPRING_MAIL_HOST:smtp.world4you.com}
port: ${SPRING_MAIL_PORT:587}
username: ${SPRING_MAIL_USERNAME:online-nennen@mo-code.at}
password: ${SPRING_MAIL_PASSWORD:}
properties:
mail:
store:
protocol: imaps
imaps:
host: ${SPRING_MAIL_HOST:imap.world4you.com}
port: ${SPRING_MAIL_PORT:993}
ssl:
enable: true
smtp:
auth: ${SPRING_MAIL_PROPERTIES_MAIL_SMTP_AUTH:true}
starttls: