package edu.asu.spring.quadriga.email.impl;
import java.util.Properties;
import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
/**
* This class is used to send out notification emails.
*
* @author Julia Damerow
*
*/
public class EmailNotificationSender {
private static final Logger logger = LoggerFactory.getLogger(EmailNotificationSender.class);
@Autowired
private JavaMailSender mailSender;
private boolean enabled = false;
private String fromAddress;
public String getFromAddress() {
return fromAddress;
}
public void setFromAddress(String fromAddress) {
this.fromAddress = fromAddress;
}
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
@Resource(name = "uiMessages")
private Properties emailMessages;
public void sendNotificationEmail(String emailaddress, String subject, String msgText) {
if (enabled) {
try {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setTo(new InternetAddress(emailaddress));
helper.setSubject(subject);
helper.setFrom(new InternetAddress(fromAddress));
// Adding tail to the message text
msgText += emailMessages.getProperty("email.tail");
helper.setText(msgText);
mailSender.send(message);
logger.debug("Send email to " + emailaddress + " with subject \"" + subject + "\"");
} catch (MessagingException ex) {
logger.error("Notification email could not be sent.", ex);
}
}
}
}