Package org.apache.logging.log4j.smtp
Class SmtpManager
java.lang.Object
org.apache.logging.log4j.core.appender.AbstractManager
org.apache.logging.log4j.core.net.MailManager
org.apache.logging.log4j.smtp.SmtpManager
- All Implemented Interfaces:
AutoCloseable
Manager for sending SMTP events.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Factory to create the SMTP Manager.Nested classes/interfaces inherited from class org.apache.logging.log4j.core.net.MailManager
MailManager.FactoryData
Nested classes/interfaces inherited from class org.apache.logging.log4j.core.appender.AbstractManager
AbstractManager.AbstractFactoryData
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final CyclicBuffer<LogEvent>
private final MailManager.FactoryData
private jakarta.mail.internet.MimeMessage
private final jakarta.mail.Session
Fields inherited from class org.apache.logging.log4j.core.appender.AbstractManager
count, LOGGER
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
SmtpManager
(String name, jakarta.mail.Session session, jakarta.mail.internet.MimeMessage message, MailManager.FactoryData data) -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds an event to the cyclic buffer.private void
private static jakarta.mail.internet.MimeMessage
createMimeMessage
(MailManager.FactoryData data, jakarta.mail.Session session, LogEvent appendEvent) protected void
encodeContent
(byte[] bytes, String encoding, ByteArrayOutputStream out) protected byte[]
encodeContentToBytes
(byte[] rawBytes, String encoding) protected byte[]
formatContentToBytes
(LogEvent[] priorEvents, LogEvent appendEvent, Layout<?> layout) protected String
getEncoding
(byte[] rawBytes, String contentType) protected jakarta.mail.internet.InternetHeaders
getHeaders
(String contentType, String encoding) protected jakarta.mail.internet.MimeMultipart
getMimeMultipart
(byte[] encodedBytes, jakarta.mail.internet.InternetHeaders headers) (package private) LogEvent[]
void
sendEvents
(Layout<?> layout, LogEvent appendEvent) Send the contents of the cyclic buffer as an e-mail message.protected void
sendMultipartMessage
(jakarta.mail.internet.MimeMessage msg, jakarta.mail.internet.MimeMultipart mp) Deprecated.protected void
sendMultipartMessage
(jakarta.mail.internet.MimeMessage msg, jakarta.mail.internet.MimeMultipart mp, String subject) protected void
writeBuffer
(LogEvent[] priorEvents, LogEvent appendEvent, Layout<?> layout, OutputStream out) private void
writeContent
(LogEvent[] priorEvents, LogEvent appendEvent, Layout<?> layout, ByteArrayOutputStream out) protected void
writeFooter
(Layout<?> layout, OutputStream out) protected void
writeHeader
(Layout<?> layout, OutputStream out) Methods inherited from class org.apache.logging.log4j.core.appender.AbstractManager
close, getContentFormat, getCount, getLoggerContext, getManager, getName, getStrSubstitutor, hasManager, log, logDebug, logError, logger, logWarn, narrow, release, releaseSub, stop, updateData
-
Field Details
-
session
private final jakarta.mail.Session session -
buffer
-
message
private volatile jakarta.mail.internet.MimeMessage message -
data
-
-
Constructor Details
-
SmtpManager
protected SmtpManager(String name, jakarta.mail.Session session, jakarta.mail.internet.MimeMessage message, MailManager.FactoryData data)
-
-
Method Details
-
createMimeMessage
private static jakarta.mail.internet.MimeMessage createMimeMessage(MailManager.FactoryData data, jakarta.mail.Session session, LogEvent appendEvent) throws jakarta.mail.MessagingException - Throws:
jakarta.mail.MessagingException
-
add
Description copied from class:MailManager
Adds an event to the cyclic buffer.- Specified by:
add
in classMailManager
- Parameters:
event
- The event to add.
-
sendEvents
Description copied from class:MailManager
Send the contents of the cyclic buffer as an e-mail message.- Specified by:
sendEvents
in classMailManager
- 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
- Throws:
IOException
-
writeBuffer
protected void writeBuffer(LogEvent[] priorEvents, LogEvent appendEvent, Layout<?> layout, OutputStream out) throws IOException - Throws:
IOException
-
getEncoding
-
encodeContentToBytes
protected byte[] encodeContentToBytes(byte[] rawBytes, String encoding) throws jakarta.mail.MessagingException, IOException - Throws:
jakarta.mail.MessagingException
IOException
-
encodeContent
protected void encodeContent(byte[] bytes, String encoding, ByteArrayOutputStream out) throws jakarta.mail.MessagingException, IOException - Throws:
jakarta.mail.MessagingException
IOException
-
getHeaders
-
getMimeMultipart
protected jakarta.mail.internet.MimeMultipart getMimeMultipart(byte[] encodedBytes, jakarta.mail.internet.InternetHeaders headers) throws jakarta.mail.MessagingException - Throws:
jakarta.mail.MessagingException
-
sendMultipartMessage
@Deprecated protected void sendMultipartMessage(jakarta.mail.internet.MimeMessage msg, jakarta.mail.internet.MimeMultipart mp) throws jakarta.mail.MessagingException Deprecated.Please use thesendMultipartMessage(MimeMessage, MimeMultipart, String)
method instead.- Throws:
jakarta.mail.MessagingException
-
sendMultipartMessage
protected void sendMultipartMessage(jakarta.mail.internet.MimeMessage msg, jakarta.mail.internet.MimeMultipart mp, String subject) throws jakarta.mail.MessagingException - Throws:
jakarta.mail.MessagingException
-
connect
-
sendMultipartMessage(MimeMessage, MimeMultipart, String)
method instead.