X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Frhynodge%2Factions%2FEmailAction.java;h=4dfece091b2eb975803c3ab4cb854c32ddac1ced;hb=e426b888068677738269eb378c24a6f62db3614d;hp=0a0aca7c4fa2e2fda21bfcc5fc8469c1c6bbe57a;hpb=5a536ce9ceeac8b431c24b79796835bd9271cfcf;p=rhynodge.git diff --git a/src/main/java/net/pterodactylus/rhynodge/actions/EmailAction.java b/src/main/java/net/pterodactylus/rhynodge/actions/EmailAction.java index 0a0aca7..4dfece0 100644 --- a/src/main/java/net/pterodactylus/rhynodge/actions/EmailAction.java +++ b/src/main/java/net/pterodactylus/rhynodge/actions/EmailAction.java @@ -37,6 +37,7 @@ import net.pterodactylus.rhynodge.output.Output; import com.google.common.annotations.VisibleForTesting; import com.sun.mail.smtp.SMTPTransport; +import org.apache.log4j.Logger; /** * {@link Action} implementation that sends an email containing the triggering @@ -46,6 +47,8 @@ import com.sun.mail.smtp.SMTPTransport; */ public class EmailAction implements Action { + private static final Logger logger = Logger.getLogger(EmailAction.class); + /** The email address of the sender. */ private final String sender; @@ -101,19 +104,35 @@ public class EmailAction implements Action { /* create text and html parts. */ MimeMultipart multipart = new MimeMultipart(); multipart.setSubType("alternative"); - MimeBodyPart textPart = new MimeBodyPart(); - textPart.setContent(output.text("text/plain", -1), "text/plain;charset=utf-8"); - MimeBodyPart htmlPart = new MimeBodyPart(); - htmlPart.setContent(output.text("text/html", -1), "text/html;charset=utf-8"); - multipart.addBodyPart(textPart); - multipart.addBodyPart(htmlPart); + addPlainTextPart(output, multipart); + addHtmlPart(output, multipart); message.setContent(multipart); - transport.connect(); + if (!transport.isConnected()) { + transport.connect(); + } transport.sendMessage(message, message.getAllRecipients()); } catch (MessagingException me1) { - /* swallow. */ + logger.error("Could not send email!", me1); + } + } + + private void addPlainTextPart(Output output, MimeMultipart multipart) throws MessagingException { + if (output.text("text/plain", -1) == null) { + return; + } + MimeBodyPart textPart = new MimeBodyPart(); + textPart.setContent(output.text("text/plain", -1), "text/plain;charset=utf-8"); + multipart.addBodyPart(textPart); + } + + private void addHtmlPart(Output output, MimeMultipart multipart) throws MessagingException { + if (output.text("text/html", -1) == null) { + return; } + MimeBodyPart htmlPart = new MimeBodyPart(); + htmlPart.setContent(output.text("text/html", -1), "text/html;charset=utf-8"); + multipart.addBodyPart(htmlPart); } }