diff --git a/notification-publisher/src/main/java/org/dependencytrack/notification/publisher/SendMailPublisher.java b/notification-publisher/src/main/java/org/dependencytrack/notification/publisher/SendMailPublisher.java index d0d623d97..c96d0c36e 100644 --- a/notification-publisher/src/main/java/org/dependencytrack/notification/publisher/SendMailPublisher.java +++ b/notification-publisher/src/main/java/org/dependencytrack/notification/publisher/SendMailPublisher.java @@ -113,6 +113,9 @@ private void sendNotification(final PublishContext ctx, Notification notificatio return; } + String emailSubjectPrefix; + emailSubjectPrefix = publisherConfig.emailPrefix().orElse(" "); + final String fromAddress = publisherConfig.fromAddress().orElse(null); if (fromAddress == null) { LOGGER.warn("From address is not configured; Skipping notification (%s)".formatted(ctx)); @@ -132,7 +135,7 @@ private void sendNotification(final PublishContext ctx, Notification notificatio final var message = new MailMessage(); message.setFrom(fromAddress); message.setTo(destination); - message.setSubject("[Dependency-Track] " + notification.getTitle()); + message.setSubject(emailSubjectPrefix + " " + notification.getTitle()); message.setText(content); mailClient.sendMailAndAwait(message); diff --git a/notification-publisher/src/main/java/org/dependencytrack/notification/publisher/SendMailPublisherConfig.java b/notification-publisher/src/main/java/org/dependencytrack/notification/publisher/SendMailPublisherConfig.java index 87c97370a..ba69854f6 100644 --- a/notification-publisher/src/main/java/org/dependencytrack/notification/publisher/SendMailPublisherConfig.java +++ b/notification-publisher/src/main/java/org/dependencytrack/notification/publisher/SendMailPublisherConfig.java @@ -44,6 +44,7 @@ class SendMailPublisherConfig { private final Provider> passwordProvider; private final Provider> tlsEnabledProvider; private final Provider> trustCertificateProvider; + private final Provider> emailPrefixProvider; SendMailPublisherConfig( @ConfigProperty(name = "dtrack.email.smtp.enabled") final Provider> smtpEnabledProvider, @@ -53,7 +54,8 @@ class SendMailPublisherConfig { @ConfigProperty(name = "dtrack.email.smtp.username") final Provider> usernameProvider, @ConfigProperty(name = "dtrack.email.smtp.password") final Provider> passwordProvider, @ConfigProperty(name = "dtrack.email.smtp.ssltls") final Provider> tlsEnabledProvider, - @ConfigProperty(name = "dtrack.email.smtp.trustcert") final Provider> trustCertificateProvider + @ConfigProperty(name = "dtrack.email.smtp.trustcert") final Provider> trustCertificateProvider, + @ConfigProperty(name = "dtrack.email.subject.prefix") final Provider> emailPrefixProvider ) { this.smtpEnabledProvider = smtpEnabledProvider; this.fromAddressProvider = fromAddressProvider; @@ -63,12 +65,17 @@ class SendMailPublisherConfig { this.passwordProvider = passwordProvider; this.tlsEnabledProvider = tlsEnabledProvider; this.trustCertificateProvider = trustCertificateProvider; + this.emailPrefixProvider = emailPrefixProvider; } Optional isSmtpEnabled() { return smtpEnabledProvider.get(); } + Optional emailPrefix() { + return emailPrefixProvider.get(); + } + Optional fromAddress() { return fromAddressProvider.get(); } diff --git a/notification-publisher/src/test/java/org/dependencytrack/notification/publisher/SendMailPublisherTest.java b/notification-publisher/src/test/java/org/dependencytrack/notification/publisher/SendMailPublisherTest.java index 5bb72885e..668ba13f7 100644 --- a/notification-publisher/src/test/java/org/dependencytrack/notification/publisher/SendMailPublisherTest.java +++ b/notification-publisher/src/test/java/org/dependencytrack/notification/publisher/SendMailPublisherTest.java @@ -55,7 +55,8 @@ public Map getConfigOverrides() { Map.entry("dtrack.email.smtp.enabled", "true"), Map.entry("dtrack.email.smtp.server.hostname", "localhost"), Map.entry("dtrack.email.smtp.server.port", "${mailpit.smtp.port}"), - Map.entry("dtrack.email.smtp.from.address", "dtrack@example.com") + Map.entry("dtrack.email.smtp.from.address", "dtrack@example.com"), + Map.entry("dtrack.email.subject.prefix", "[Dependency-Track]") ); }