public class SMTPTargetFactory extends AbstractTargetFactory
This factory creates SMTPOutputLogTarget's. It uses the
context-key attribute to locate the required JavaMail Session from
the Context object passed to this factory. The default context-key
is session-context.
<smtp id="target-id" context-key="context-key-to-session-object"> <format type="raw|pattern|extended">pattern to be used if needed</format> <to>address-1@host</to> <to>address-N@host</to> <from>address@host</from> <subject>subject line</subject> <maximum-size>number</maximum-size> <maximum-delay-time>seconds</maximum-delay-time> <debug>false</debug> </smtp>The Factory will look for a javax.mail.Session instance in the Context using the specified context-key. If your needs are simple, then it is also possible to define a Session within the configuration by replacing the context-key attribute with a session child element as follows:
<session> <parameter name="mail.host" value="mail.apache.com"/> </session>The Session is created by calling Session.getInstance, providing a Properties object whose values are defined in the above block. Any valid name value pair can be specified.
%7.7{priority} %5.5{time} [%8.8{category}] (%{context}): %{message}\\n%{throwable}
m_configuration, m_context| Constructor and Description |
|---|
SMTPTargetFactory() |
| Modifier and Type | Method and Description |
|---|---|
protected javax.mail.Address |
createAddress(java.lang.String address)
Helper factory method to create a new
Address
object. |
org.apache.log.LogTarget |
createTarget(org.apache.avalon.framework.configuration.Configuration config)
Creates an SMTPOutputLogTarget based on a Configuration
|
private boolean |
getDebug(org.apache.avalon.framework.configuration.Configuration config)
Helper method to obtain the debug glag to use from the given
configuration object.
|
protected org.apache.log.format.Formatter |
getFormatter(org.apache.avalon.framework.configuration.Configuration config)
Helper method to obtain a formatter for this factory.
|
private javax.mail.Address |
getFromAddress(org.apache.avalon.framework.configuration.Configuration config)
Helper method to obtain the from address from
the given configuration.
|
private int |
getMaxDelayTime(org.apache.avalon.framework.configuration.Configuration config)
Helper method to obtain the maximum delay time any particular SMTP
message can be queued from a given configuration object.
|
private int |
getMaxSize(org.apache.avalon.framework.configuration.Configuration config)
Helper method to obtain the maximum size any particular SMTP
message can be from a given configuration object.
|
protected javax.mail.Session |
getSession(org.apache.avalon.framework.configuration.Configuration config)
Helper method to create a JavaMail
Session object. |
private java.lang.String |
getSubject(org.apache.avalon.framework.configuration.Configuration config)
Helper method to obtain the subject line to use from the given
configuration object.
|
private javax.mail.Address[] |
getToAddresses(org.apache.avalon.framework.configuration.Configuration config)
Helper method to obtain the to address/es from the
given configuration.
|
configure, contextualizepublic final org.apache.log.LogTarget createTarget(org.apache.avalon.framework.configuration.Configuration config)
throws org.apache.avalon.framework.configuration.ConfigurationException
config - a Configuration instanceLogTarget instanceorg.apache.avalon.framework.configuration.ConfigurationException - if an error occursprotected org.apache.log.format.Formatter getFormatter(org.apache.avalon.framework.configuration.Configuration config)
config - a Configuration instanceFormatter instanceprotected javax.mail.Session getSession(org.apache.avalon.framework.configuration.Configuration config)
throws org.apache.avalon.framework.context.ContextException,
org.apache.avalon.framework.configuration.ConfigurationException
Session object.
If your session object has simple needs, you can nest a configuration element
named session containing name-value pairs that are passed to
Session.getInstance().
If no configuration is found, a Session will be loaded from this
factory's context object.
You can override this method if you need ot obtain the JavaMail session using
some other means.Session instanceorg.apache.avalon.framework.context.ContextException - if an error occursorg.apache.avalon.framework.configuration.ConfigurationException - if invalid session configurationprivate java.lang.String getSubject(org.apache.avalon.framework.configuration.Configuration config)
throws org.apache.avalon.framework.configuration.ConfigurationException
config - a Configuration instanceorg.apache.avalon.framework.configuration.ConfigurationExceptionprivate int getMaxSize(org.apache.avalon.framework.configuration.Configuration config)
throws org.apache.avalon.framework.configuration.ConfigurationException
config - a Configuration instanceorg.apache.avalon.framework.configuration.ConfigurationExceptionprivate int getMaxDelayTime(org.apache.avalon.framework.configuration.Configuration config)
throws org.apache.avalon.framework.configuration.ConfigurationException
config - a Configuration instanceorg.apache.avalon.framework.configuration.ConfigurationExceptionprivate javax.mail.Address[] getToAddresses(org.apache.avalon.framework.configuration.Configuration config)
throws org.apache.avalon.framework.configuration.ConfigurationException,
javax.mail.internet.AddressException
config - Configuration instanceAddress objectsorg.apache.avalon.framework.configuration.ConfigurationException - if a configuration error occursjavax.mail.internet.AddressException - if a addressing error occursprivate javax.mail.Address getFromAddress(org.apache.avalon.framework.configuration.Configuration config)
throws org.apache.avalon.framework.configuration.ConfigurationException,
javax.mail.internet.AddressException
config - a Configuration instanceAddress objectorg.apache.avalon.framework.configuration.ConfigurationException - if a configuration error occursjavax.mail.internet.AddressException - if a addressing error occursprivate boolean getDebug(org.apache.avalon.framework.configuration.Configuration config)
throws org.apache.avalon.framework.configuration.ConfigurationException
config - a Configuration instanceorg.apache.avalon.framework.configuration.ConfigurationExceptionprotected javax.mail.Address createAddress(java.lang.String address)
throws javax.mail.internet.AddressException
Address
object. Override this method in a subclass if you wish to
create other Address types rather than
InternetAddress (eg. NewsAddress)address - address string from configurationAddress objectjavax.mail.internet.AddressException - if an error occurs