From 4df281bcd2ae02e544b26704d3fc51c62a3a2736 Mon Sep 17 00:00:00 2001 From: Graham Triggs Date: Thu, 2 Jun 2016 14:06:16 +0100 Subject: [PATCH] [VIVO-1230] Make contact form compatible with SMTP relays --- .../freemarker/ContactMailController.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/freemarker/ContactMailController.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/freemarker/ContactMailController.java index 2c3cdcbc4..f76d5e9c8 100644 --- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/freemarker/ContactMailController.java +++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/freemarker/ContactMailController.java @@ -12,6 +12,7 @@ import java.util.Date; import java.util.HashMap; import java.util.Map; +import javax.mail.Address; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.SendFailedException; @@ -256,13 +257,13 @@ public class ContactMailController extends FreemarkerHttpServlet { MimeMessage msg = new MimeMessage( s ); //System.out.println("trying to send message from servlet"); - // Set the from address + // Set the reply address try { - msg.setFrom( new InternetAddress( webuseremail, webusername )); + msg.setReplyTo( new Address[] { new InternetAddress( webuseremail, webusername ) } ); } catch (UnsupportedEncodingException e) { - log.error("Can't set message sender with personal name " + webusername + + log.error("Can't set message reply with personal name " + webusername + " due to UnsupportedEncodingException"); - msg.setFrom( new InternetAddress( webuseremail ) ); +// msg.setFrom( new InternetAddress( webuseremail ) ); } // Set the recipient address @@ -272,6 +273,13 @@ public class ContactMailController extends FreemarkerHttpServlet { } msg.setRecipients( Message.RecipientType.TO, address ); + // Set the from address + if (address != null && address.length > 0) { + msg.setFrom(address[0]); + } else { + msg.setFrom( new InternetAddress( webuseremail ) ); + } + // Set the subject and text msg.setSubject( deliveryfrom );