Class SmtpManager

java.lang.Object
org.apache.logging.log4j.core.appender.AbstractManager
org.apache.logging.log4j.core.net.SmtpManager
All Implemented Interfaces:
AutoCloseable

public class SmtpManager extends AbstractManager
Manager for sending SMTP events.
  • Field Details

  • Constructor Details

    • SmtpManager

      protected SmtpManager(String name, javax.mail.Session session, javax.mail.internet.MimeMessage message, SmtpManager.FactoryData data)
  • Method Details

    • createMimeMessage

      private static javax.mail.internet.MimeMessage createMimeMessage(SmtpManager.FactoryData data, javax.mail.Session session, LogEvent appendEvent) throws javax.mail.MessagingException
      Throws:
      javax.mail.MessagingException
    • add

      public void add(LogEvent event)
    • getSmtpManager

      public static SmtpManager getSmtpManager(Configuration config, String to, String cc, String bcc, String from, String replyTo, String subject, String protocol, String host, int port, String username, String password, boolean isDebug, String filterName, int numElements, SslConfiguration sslConfiguration)
    • createManagerName

      static String createManagerName(String to, String cc, String bcc, String from, String replyTo, String subject, String protocol, String host, int port, String username, boolean isDebug, String filterName)
      Creates a unique-per-configuration name for an smtp manager using the specified the parameters.
      Using such a name allows us to maintain singletons per unique configurations.
      Returns:
      smtp manager name
    • sendEvents

      public void sendEvents(Layout<?> layout, LogEvent appendEvent)
      Send the contents of the cyclic buffer as an e-mail message.
      Parameters:
      layout - The layout for formatting the events.
      appendEvent - The event that triggered the send.
    • removeAllBufferedEvents

      LogEvent[] removeAllBufferedEvents()
    • formatContentToBytes

      protected byte[] formatContentToBytes(LogEvent[] priorEvents, LogEvent appendEvent, Layout<?> layout) throws IOException
      Throws:
      IOException
    • writeContent

      private void writeContent(LogEvent[] priorEvents, LogEvent appendEvent, Layout<?> layout, ByteArrayOutputStream out) throws IOException
      Throws:
      IOException
    • writeHeader

      protected void writeHeader(Layout<?> layout, OutputStream out) throws IOException
      Throws:
      IOException
    • writeBuffer

      protected void writeBuffer(LogEvent[] priorEvents, LogEvent appendEvent, Layout<?> layout, OutputStream out) throws IOException
      Throws:
      IOException
    • writeFooter

      protected void writeFooter(Layout<?> layout, OutputStream out) throws IOException
      Throws:
      IOException
    • getEncoding

      protected String getEncoding(byte[] rawBytes, String contentType)
    • encodeContentToBytes

      protected byte[] encodeContentToBytes(byte[] rawBytes, String encoding) throws javax.mail.MessagingException, IOException
      Throws:
      javax.mail.MessagingException
      IOException
    • encodeContent

      protected void encodeContent(byte[] bytes, String encoding, ByteArrayOutputStream out) throws javax.mail.MessagingException, IOException
      Throws:
      javax.mail.MessagingException
      IOException
    • getHeaders

      protected javax.mail.internet.InternetHeaders getHeaders(String contentType, String encoding)
    • getMimeMultipart

      protected javax.mail.internet.MimeMultipart getMimeMultipart(byte[] encodedBytes, javax.mail.internet.InternetHeaders headers) throws javax.mail.MessagingException
      Throws:
      javax.mail.MessagingException
    • sendMultipartMessage

      @Deprecated protected void sendMultipartMessage(javax.mail.internet.MimeMessage msg, javax.mail.internet.MimeMultipart mp) throws javax.mail.MessagingException
      Deprecated.
      Throws:
      javax.mail.MessagingException
    • sendMultipartMessage

      protected void sendMultipartMessage(javax.mail.internet.MimeMessage msg, javax.mail.internet.MimeMultipart mp, String subject) throws javax.mail.MessagingException
      Throws:
      javax.mail.MessagingException
    • connect

      private void connect(LogEvent appendEvent)