NIHVIVO-3118 Check whether site email is configured before trying to send email error message. Use FreemarkerEmailMessage method to get site reply to email address.

This commit is contained in:
ryounes 2011-08-15 15:18:36 +00:00
parent 0e42232d3c
commit 8c13defa5a
3 changed files with 10 additions and 8 deletions

View file

@ -47,7 +47,7 @@ public class ContactFormController extends FreemarkerHttpServlet {
templateName = TEMPLATE_ERROR; templateName = TEMPLATE_ERROR;
} }
else if (StringUtils.isEmpty(appBean.getContactMail())) { else if (StringUtils.isBlank(appBean.getContactMail())) {
body.put("errorMessage", body.put("errorMessage",
"The feedback form is currently disabled. In order to activate the form, a site administrator must provide a contact email address in the <a href='editForm?home=1&amp;controller=ApplicationBean&amp;id=1'>Site Configuration</a>"); "The feedback form is currently disabled. In order to activate the form, a site administrator must provide a contact email address in the <a href='editForm?home=1&amp;controller=ApplicationBean&amp;id=1'>Site Configuration</a>");
@ -56,7 +56,6 @@ public class ContactFormController extends FreemarkerHttpServlet {
else { else {
String appName = appBean.getApplicationName();
body.put("formAction", "submitFeedback"); body.put("formAction", "submitFeedback");
if (vreq.getHeader("Referer") == null) { if (vreq.getHeader("Referer") == null) {

View file

@ -15,6 +15,7 @@ import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
@ -169,15 +170,13 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
templateMap.put("adminErrorData", adminErrorData); templateMap.put("adminErrorData", adminErrorData);
// Else send the data to the site administrator // Else send the data to the site administrator
} else { } else if (FreemarkerEmailFactory.isConfigured(vreq)) {
FreemarkerEmailMessage email = FreemarkerEmailFactory.createNewMessage(vreq); FreemarkerEmailMessage email = FreemarkerEmailFactory.createNewMessage(vreq);
String recipient = ConfigurationProperties.getBean(getServletContext()) email.addRecipient(TO, email.getReplyToAddress());
.getProperty("email.replyTo");
email.addRecipient(TO, recipient);
email.setTemplate(Template.ERROR_EMAIL.toString()); email.setTemplate(Template.ERROR_EMAIL.toString());
email.setBodyMap(adminErrorData); email.setBodyMap(adminErrorData);
email.processTemplate(); email.processTemplate();
sentEmail = email.send(); sentEmail = email.send();
} }
templateMap.put("sentEmail", sentEmail); templateMap.put("sentEmail", sentEmail);

View file

@ -217,7 +217,11 @@ public class FreemarkerEmailMessage {
bodyPart.setContent(textBody, type); bodyPart.setContent(textBody, type);
content.addBodyPart(bodyPart); content.addBodyPart(bodyPart);
} }
public String getReplyToAddress() {
return replyToAddress.getAddress();
}
private <T> T nonNull(T value, T defaultValue) { private <T> T nonNull(T value, T defaultValue) {
return (value == null) ? defaultValue : value; return (value == null) ? defaultValue : value;
} }