From 5bef34ce619ae0dde15b07ea48e19d5ca2f40bac Mon Sep 17 00:00:00 2001 From: justinedelson Date: Tue, 8 Nov 2011 12:02:38 -0800 Subject: [PATCH] adding support for reply-to header --- .../main/java/hudson/tasks/MailSender.java | 8 ++++++ core/src/main/java/hudson/tasks/Mailer.java | 25 +++++++++++++++++++ .../hudson/tasks/Mailer/global.jelly | 3 +++ 3 files changed, 36 insertions(+) diff --git a/core/src/main/java/hudson/tasks/MailSender.java b/core/src/main/java/hudson/tasks/MailSender.java index 45e87e03b0..2d88704275 100644 --- a/core/src/main/java/hudson/tasks/MailSender.java +++ b/core/src/main/java/hudson/tasks/MailSender.java @@ -38,6 +38,9 @@ import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import javax.mail.internet.AddressException; + +import org.apache.commons.lang.StringUtils; + import java.io.File; import java.io.IOException; import java.util.*; @@ -310,6 +313,11 @@ public class MailSender { msg.setContent("", "text/plain"); msg.setFrom(new InternetAddress(Mailer.descriptor().getAdminAddress())); msg.setSentDate(new Date()); + + String replyTo = Mailer.descriptor().getReplyToAddress(); + if (StringUtils.isNotBlank(replyTo)) { + msg.setHeader("Reply-To", replyTo); + } Set rcp = new LinkedHashSet(); String defaultSuffix = Mailer.descriptor().getDefaultSuffix(); diff --git a/core/src/main/java/hudson/tasks/Mailer.java b/core/src/main/java/hudson/tasks/Mailer.java index a892a9042b..b9dc735025 100644 --- a/core/src/main/java/hudson/tasks/Mailer.java +++ b/core/src/main/java/hudson/tasks/Mailer.java @@ -40,6 +40,14 @@ import hudson.model.UserPropertyDescriptor; import hudson.util.FormValidation; import hudson.util.Secret; +import org.apache.commons.lang.StringUtils; +import org.apache.tools.ant.types.selectors.SelectorUtils; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; +import org.kohsuke.stapler.QueryParameter; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.export.Exported; + import java.io.File; import java.io.IOException; import java.net.InetAddress; @@ -171,6 +179,20 @@ public class Mailer extends Notifier { */ private String adminAddress; + /** + * The e-mail address that Hudson puts to "Reply-To" header in outgoing e-mails. + * Null if not configured. + */ + private String replyToAddress; + + public String getReplyToAddress() { + return replyToAddress; + } + + public void setReplyToAddress(String address) { + this.replyToAddress = address; + } + /** * The SMTP server to use for sending e-mail. Null for default to the environment, * which is usually localhost. @@ -450,6 +472,9 @@ public class Mailer extends Notifier { msg.setSubject(Messages.Mailer_TestMail_Subject(++testEmailCount), charset); msg.setText(Messages.Mailer_TestMail_Content(testEmailCount, Jenkins.getInstance().getDisplayName()), charset); msg.setFrom(new InternetAddress(adminAddress)); + if (StringUtils.isNotBlank(replyToAddress)) { + msg.setHeader("Reply-To", replyToAddress); + } msg.setSentDate(new Date()); msg.setRecipient(Message.RecipientType.TO, new InternetAddress(sendTestMailTo)); diff --git a/core/src/main/resources/hudson/tasks/Mailer/global.jelly b/core/src/main/resources/hudson/tasks/Mailer/global.jelly index 15c88b25ad..aa060732e1 100644 --- a/core/src/main/resources/hudson/tasks/Mailer/global.jelly +++ b/core/src/main/resources/hudson/tasks/Mailer/global.jelly @@ -39,6 +39,9 @@ THE SOFTWARE. + + +