package de.unigoettingen.sub.commons.ocr.util; import org.apache.commons.mail.Email; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.SimpleEmail; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Mailer { final static Logger log = LoggerFactory.getLogger(Mailer.class); private Email emailStarted = new SimpleEmail(); private Email emailFinished = new SimpleEmail(); // for unit tests void setEmailStarted(Email newEmail) { emailStarted = newEmail; } void setEmailFinished(Email newEmail) { emailFinished = newEmail; } public void sendStarted(String mailAddress, int estimatedDuration) { send(emailStarted, mailAddress, "OCR Prozess gestartet", "Voraussichtliche Dauer: " + (estimatedDuration/60) + " Minuten" + " (" + (estimatedDuration/60/60) + " Stunden)"); } public void sendFinished(String mailAddress, String outputFolder) { String message = "Ausgabeordner: " + outputFolder; send(emailFinished, mailAddress, "OCR Prozess beendet", message); } private void send(Email email, String toAddress, String subject, String message) { try { email.setHostName("localhost"); email.setFrom("no-reply@gwdg.de"); email.setSubject(subject); email.setMsg(message); email.addTo(toAddress); email.send(); } catch (EmailException e) { log.error("Could not send mail to " + toAddress, e); } } }