Class SMTPAppenderBase<E>

All Implemented Interfaces:
Appender<E>, ContextAware, FilterAttachable<E>, LifeCycle

public abstract class SMTPAppenderBase<E> extends AppenderBase<E>
An abstract class that provides support for sending events to an email address.

See http://logback.qos.ch/manual/appenders.html#SMTPAppender for further documentation.

Author:
Ceki Gülcü, Sébastien Pennec
  • Field Details

    • subjectLayout

      protected Layout<E> subjectLayout
    • layout

      protected Layout<E> layout
    • asynchronousSendingFuture

      protected Future<?> asynchronousSendingFuture
    • session

      protected javax.mail.Session session
    • eventEvaluator

      protected EventEvaluator<E> eventEvaluator
    • discriminator

      protected Discriminator<E> discriminator
    • cbTracker

      protected CyclicBufferTracker<E> cbTracker
  • Constructor Details

    • SMTPAppenderBase

      public SMTPAppenderBase()
  • Method Details

    • makeSubjectLayout

      protected abstract Layout<E> makeSubjectLayout(String subjectStr)
      return a layout for the subject string as appropriate for the module. If the subjectStr parameter is null, then a default value for subjectStr should be used.
      Parameters:
      subjectStr -
      Returns:
      a layout as appropriate for the module
    • start

      public void start()
      Start the appender
      Specified by:
      start in interface LifeCycle
      Overrides:
      start in class AppenderBase<E>
    • append

      protected void append(E eventObject)
      Perform SMTPAppender specific appending actions, delegating some of them to a subclass and checking if the event triggers an e-mail to be sent.
      Specified by:
      append in class AppenderBase<E>
    • eventMarksEndOfLife

      protected abstract boolean eventMarksEndOfLife(E eventObject)
    • subAppend

      protected abstract void subAppend(CyclicBuffer<E> cb, E eventObject)
    • checkEntryConditions

      public boolean checkEntryConditions()
      This method determines if there is a sense in attempting to append.

      It checks whether there is a set output target and also if there is a set layout. If these checks fail, then the boolean value false is returned.

    • stop

      public void stop()
      Specified by:
      stop in interface LifeCycle
      Overrides:
      stop in class AppenderBase<E>
    • getToList

      public List<PatternLayoutBase<E>> getToList()
      Returns value of the toList option.
    • updateMimeMsg

      protected void updateMimeMsg(javax.mail.internet.MimeMessage mimeMsg, CyclicBuffer<E> cb, E lastEventObject)
      Allows to extend classes to update mime message (e.g.: Add headers)
    • sendBuffer

      protected void sendBuffer(CyclicBuffer<E> cb, E lastEventObject)
      Send the contents of the cyclic buffer as an e-mail message.
    • fillBuffer

      protected abstract void fillBuffer(CyclicBuffer<E> cb, StringBuffer sbuf)
    • getFrom

      public String getFrom()
      Returns value of the From option.
    • getSubject

      public String getSubject()
      Returns value of the Subject option.
    • setFrom

      public void setFrom(String from)
      The From option takes a string value which should be an e-mail address of the sender.
    • setSubject

      public void setSubject(String subject)
      The Subject option takes a string value which should be the subject of the e-mail message.
    • setSMTPHost

      public void setSMTPHost(String smtpHost)
      Alias for smtpHost
      Parameters:
      smtpHost -
    • setSmtpHost

      public void setSmtpHost(String smtpHost)
      The smtpHost option takes a string value which should be the host name of the SMTP server that will send the e-mail message.
    • getSMTPHost

      public String getSMTPHost()
      Alias for getSmtpHost().
    • getSmtpHost

      public String getSmtpHost()
      Returns value of the SMTPHost option.
    • setSMTPPort

      public void setSMTPPort(int port)
      Alias for setSmtpPort(int).
      Parameters:
      port -
    • setSmtpPort

      public void setSmtpPort(int port)
      The port where the SMTP server is running. Default value is 25.
      Parameters:
      port -
    • getSMTPPort

      public int getSMTPPort()
      Alias for getSmtpPort()
      Returns:
    • getSmtpPort

      public int getSmtpPort()
      Returns:
    • getLocalhost

      public String getLocalhost()
    • setLocalhost

      public void setLocalhost(String localhost)
      Set the "mail.smtp.localhost" property to the value passed as parameter to this method.

      Useful in case the hostname for the client host is not fully qualified and as a consequence the SMTP server rejects the clients HELO/EHLO command.

      Parameters:
      localhost -
    • getCyclicBufferTracker

      public CyclicBufferTracker<E> getCyclicBufferTracker()
    • setCyclicBufferTracker

      public void setCyclicBufferTracker(CyclicBufferTracker<E> cbTracker)
    • getDiscriminator

      public Discriminator<E> getDiscriminator()
    • setDiscriminator

      public void setDiscriminator(Discriminator<E> discriminator)
    • isAsynchronousSending

      public boolean isAsynchronousSending()
    • setAsynchronousSending

      public void setAsynchronousSending(boolean asynchronousSending)
      By default, SMTAppender transmits emails asynchronously. For synchronous email transmission set asynchronousSending to 'false'.
      Parameters:
      asynchronousSending - determines whether sending is done asynchronously or not
      Since:
      1.0.4
    • addTo

      public void addTo(String to)
    • makeNewToPatternLayout

      protected abstract PatternLayoutBase<E> makeNewToPatternLayout(String toPattern)
    • getToAsListOfString

      public List<String> getToAsListOfString()
    • isSTARTTLS

      public boolean isSTARTTLS()
    • setSTARTTLS

      public void setSTARTTLS(boolean startTLS)
    • isSSL

      public boolean isSSL()
    • setSSL

      public void setSSL(boolean ssl)
    • setEvaluator

      public void setEvaluator(EventEvaluator<E> eventEvaluator)
      The EventEvaluator option takes a string value representing the name of the class implementing the EventEvaluator interface. A corresponding object will be instantiated and assigned as the event evaluator for the SMTPAppender.
    • getUsername

      public String getUsername()
    • setUsername

      public void setUsername(String username)
    • getPassword

      public String getPassword()
    • setPassword

      public void setPassword(String password)
    • getCharsetEncoding

      public String getCharsetEncoding()
      Returns:
      the charset encoding value
      See Also:
    • getJndiLocation

      public String getJndiLocation()
    • setJndiLocation

      public void setJndiLocation(String jndiLocation)
      Set the location where a Session resource is located in JNDI. Default value is "java:comp/env/mail/Session".
      Parameters:
      jndiLocation -
      Since:
      1.0.6
    • isSessionViaJNDI

      public boolean isSessionViaJNDI()
    • setSessionViaJNDI

      public void setSessionViaJNDI(boolean sessionViaJNDI)
      If set to true, a Session resource will be retrieved from JNDI. Default is false.
      Parameters:
      sessionViaJNDI - whether to obtain a javax.mail.Session by JNDI
      Since:
      1.0.6
    • setCharsetEncoding

      public void setCharsetEncoding(String charsetEncoding)
      Set the character set encoding of the outgoing email messages. The default encoding is "UTF-8" which usually works well for most purposes.
      Parameters:
      charsetEncoding -
    • getLayout

      public Layout<E> getLayout()
    • setLayout

      public void setLayout(Layout<E> layout)