Merge branch 'feature/fallback_sender' into feature/notifications

This commit is contained in:
2026-01-28 00:24:35 +01:00
5 changed files with 9 additions and 7 deletions

View File

@@ -4,7 +4,6 @@ package de.srsoftware.umbrella.messagebus;
import de.srsoftware.umbrella.messagebus.events.Event; import de.srsoftware.umbrella.messagebus.events.Event;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set; import java.util.Set;
public class MessageBus { public class MessageBus {

View File

@@ -5,6 +5,7 @@ public class Constants {
public static final String AUTH = "mail.smtp.auth"; public static final String AUTH = "mail.smtp.auth";
public static final String CONFIG_DB = "umbrella.modules.message.database"; public static final String CONFIG_DB = "umbrella.modules.message.database";
public static final String CONFIG_SMTP_FROM = "umbrella.modules.message.smtp.from";
public static final String CONFIG_SMTP_HOST = "umbrella.modules.message.smtp.host"; public static final String CONFIG_SMTP_HOST = "umbrella.modules.message.smtp.host";
public static final String CONFIG_SMTP_PASS = "umbrella.modules.message.smtp.pass"; public static final String CONFIG_SMTP_PASS = "umbrella.modules.message.smtp.pass";
public static final String CONFIG_SMTP_PORT = "umbrella.modules.message.smtp.port"; public static final String CONFIG_SMTP_PORT = "umbrella.modules.message.smtp.port";

View File

@@ -212,6 +212,7 @@ public class MessageSystem extends BaseHandler implements PostBox, EventListener
LOG.log(INFO,"Running {0}…",scheduledHour == null ? "instantly" : "scheduled at "+scheduledHour); LOG.log(INFO,"Running {0}…",scheduledHour == null ? "instantly" : "scheduled at "+scheduledHour);
var dueRecipients = queue.getReceivers().map(this::toUmbrellaUser).filter(uu -> sendAt(uu,scheduledHour)).toList(); var dueRecipients = queue.getReceivers().map(this::toUmbrellaUser).filter(uu -> sendAt(uu,scheduledHour)).toList();
var fallbackSender = new User("Umbrella",new EmailAddress(from),null);
var date = new Date(); var date = new Date();
@@ -220,7 +221,7 @@ public class MessageSystem extends BaseHandler implements PostBox, EventListener
LOG.log(DEBUG,"Debug address is set to {0}, ignoring mail to {1}",debugAddress,receiver); LOG.log(DEBUG,"Debug address is set to {0}, ignoring mail to {1}",debugAddress,receiver);
continue; continue;
} }
var combined = new CombinedMessage(t("Collected messages"),receiver); var combined = new CombinedMessage(t("Collected messages"),receiver, fallbackSender);
try { try {
var envelopes = queue.getEnvelopesFor(receiver); var envelopes = queue.getEnvelopesFor(receiver);

View File

@@ -3,7 +3,6 @@ package de.srsoftware.umbrella.message.model;
import static de.srsoftware.umbrella.core.ModuleRegistry.translator; import static de.srsoftware.umbrella.core.ModuleRegistry.translator;
import static de.srsoftware.umbrella.core.Util.dateTimeOf; import static de.srsoftware.umbrella.core.Util.dateTimeOf;
import static de.srsoftware.umbrella.core.model.Translatable.t;
import static java.lang.System.Logger.Level.DEBUG; import static java.lang.System.Logger.Level.DEBUG;
import static java.lang.System.Logger.Level.TRACE; import static java.lang.System.Logger.Level.TRACE;
import static java.text.MessageFormat.format; import static java.text.MessageFormat.format;
@@ -18,15 +17,17 @@ public class CombinedMessage {
private final StringBuilder combinedBody = new StringBuilder(); private final StringBuilder combinedBody = new StringBuilder();
private final User receiver; private final User receiver;
private final String lang; private final String lang;
private final User fallbackSender;
private String combinedSubject = null; private String combinedSubject = null;
private final List<Message<?>> mergedMessages = new ArrayList<>(); private final List<Message<?>> mergedMessages = new ArrayList<>();
private final Translatable subjectForCombinedMessage; private final Translatable subjectForCombinedMessage;
private UmbrellaUser sender = null; private User sender = null;
public static final String SEPARATOR = "\n\n━━━━━━━━━━━━━━━━━━━━━\n\n"; public static final String SEPARATOR = "\n\n━━━━━━━━━━━━━━━━━━━━━\n\n";
public CombinedMessage(Translatable subjectForCombinedMessage, User receiver){ public CombinedMessage(Translatable subjectForCombinedMessage, User receiver, User fallbackSender){
LOG.log(DEBUG,"Creating combined message for {0}…",receiver); LOG.log(DEBUG,"Creating combined message for {0}…",receiver);
this.subjectForCombinedMessage = subjectForCombinedMessage; this.subjectForCombinedMessage = subjectForCombinedMessage;
this.fallbackSender = fallbackSender;
this.receiver = receiver; this.receiver = receiver;
this.lang = receiver.language(); this.lang = receiver.language();
} }
@@ -61,6 +62,7 @@ public class CombinedMessage {
combinedSubject = subjectForCombinedMessage.translate(lang); combinedSubject = subjectForCombinedMessage.translate(lang);
// no break here, we need to append the subject and content // no break here, we need to append the subject and content
default: default:
if (!sender.equals(message.sender())) sender = fallbackSender;
combinedBody.append(SEPARATOR).append("# ").append(message.sender()).append(" @ ").append(dateTimeOf(message.utcTime())).append("\n→ ").append(subject).append(":\n\n"); combinedBody.append(SEPARATOR).append("# ").append(message.sender()).append(" @ ").append(dateTimeOf(message.utcTime())).append("\n→ ").append(subject).append(":\n\n");
combinedBody.append(body); combinedBody.append(body);
} }
@@ -76,7 +78,7 @@ public class CombinedMessage {
return receiver; return receiver;
} }
public UmbrellaUser sender() { public User sender() {
return sender; return sender;
} }

View File

@@ -10,7 +10,6 @@ import de.srsoftware.umbrella.user.model.DbUser;
import de.srsoftware.umbrella.user.model.Password; import de.srsoftware.umbrella.user.model.Password;
import java.util.Collection; import java.util.Collection;
import java.util.Map; import java.util.Map;
import java.util.Optional;
public interface UserDb { public interface UserDb {