Index: core/src/main/java/org/apache/logging/log4j/core/net/SMTPManager.java
===================================================================
--- core/src/main/java/org/apache/logging/log4j/core/net/SMTPManager.java	(revision 1433193)
+++ core/src/main/java/org/apache/logging/log4j/core/net/SMTPManager.java	(working copy)
@@ -123,13 +123,15 @@
 
     /**
      * Send the contents of the cyclic buffer as an e-mail message.
+     * @param appendEvent 
      */
-    public void sendEvents(final Layout<?> layout) {
+    public void sendEvents(final Layout<?> layout, final LogEvent appendEvent) {
         if (message == null) {
             connect();
         }
         try {
-            final byte[] rawBytes = formatContentToBytes(buffer, layout);
+        	final LogEvent[] priorEvents = buffer.removeAll();
+            final byte[] rawBytes = formatContentToBytes(priorEvents, appendEvent, layout);
 
             final String contentType = layout.getContentType();
             final String encoding = getEncoding(rawBytes, contentType);
@@ -151,16 +153,16 @@
         }
     }
 
-    protected byte[] formatContentToBytes(final CyclicBuffer<LogEvent> cb, final Layout<?> layout) throws IOException {
+    protected byte[] formatContentToBytes(final LogEvent[] priorEvents, final LogEvent appendEvent, final Layout<?> layout) throws IOException {
         final ByteArrayOutputStream raw = new ByteArrayOutputStream();
-        writeContent(cb, layout, raw);
+        writeContent(priorEvents, appendEvent, layout, raw);
         return raw.toByteArray();
     }
 
-    private void writeContent(final CyclicBuffer<LogEvent> cb, final Layout<?> layout, final ByteArrayOutputStream out)
+    private void writeContent(final LogEvent[] priorEvents, final LogEvent appendEvent, final Layout<?> layout, final ByteArrayOutputStream out)
         throws IOException {
         writeHeader(layout, out);
-        writeBuffer(cb, layout, out);
+        writeBuffer(priorEvents, appendEvent, layout, out);
         writeFooter(layout, out);
     }
 
@@ -171,12 +173,14 @@
         }
     }
 
-    protected void writeBuffer(final CyclicBuffer<LogEvent> cb, final Layout<?> layout, final OutputStream out) throws IOException {
-        final LogEvent[] events = cb.removeAll();
-        for (final LogEvent event : events) {
-            final byte[] bytes = layout.toByteArray(event);
+    protected void writeBuffer(final LogEvent[] priorEvents, final LogEvent appendEvent, final Layout<?> layout, final OutputStream out) throws IOException {
+        for (final LogEvent priorEvent : priorEvents) {
+            final byte[] bytes = layout.toByteArray(priorEvent);
             out.write(bytes);
         }
+        
+        final byte[] bytes = layout.toByteArray(appendEvent);
+        out.write(bytes);
     }
 
     protected void writeFooter(final Layout<?> layout, final OutputStream out) throws IOException {
Index: core/src/main/java/org/apache/logging/log4j/core/appender/SMTPAppender.java
===================================================================
--- core/src/main/java/org/apache/logging/log4j/core/appender/SMTPAppender.java	(revision 1433193)
+++ core/src/main/java/org/apache/logging/log4j/core/appender/SMTPAppender.java	(working copy)
@@ -146,8 +146,11 @@
      */
     @Override
     public boolean isFiltered(final LogEvent event) {
-        manager.add(event);
-        return super.isFiltered(event);
+        final boolean filtered = super.isFiltered(event);
+        if(filtered) {
+            manager.add(event);
+        }
+		return filtered;
     }
 
     /**
@@ -156,6 +159,6 @@
      * sent.
      */
     public void append(final LogEvent event) {
-        manager.sendEvents(getLayout());
+        manager.sendEvents(getLayout(), event);
     }
 }
\ No newline at end of file
Index: core/src/test/java/org/apache/logging/log4j/core/appender/SMTPAppenderTest.java
===================================================================
--- core/src/test/java/org/apache/logging/log4j/core/appender/SMTPAppenderTest.java	(revision 1433193)
+++ core/src/test/java/org/apache/logging/log4j/core/appender/SMTPAppenderTest.java	(working copy)
@@ -144,6 +144,7 @@
         root.debug("Debug message #1");
         root.debug("Debug message #2");
         root.debug("Debug message #3");
+        root.debug("Debug message #4");
         root.error("Error with exception", new RuntimeException("Exception message"));
 
         server.stop();
@@ -162,6 +163,7 @@
         assertFalse(body.contains("Debug message #1"));
         assertTrue(body.contains("Debug message #2"));
         assertTrue(body.contains("Debug message #3"));
+        assertTrue(body.contains("Debug message #4"));
         assertTrue(body.contains("Error with exception"));
         assertTrue(body.contains("RuntimeException"));
         assertTrue(body.contains("Exception message"));
