@Override
		public void data(final InputStream data) throws IOException {
			if (this.deliveries.size() == 1) {
				final Delivery delivery = this.deliveries.get(0);
				delivery.getListener().deliver(this.from, delivery.getRecipient(), data);
			} else {
				try (DeferredFileOutputStream dfos
						= new DeferredFileOutputStream(MessageListenerAdapter.this.dataDeferredSize)) {
					int value;
					while ((value = data.read()) >= 0) {
						dfos.write(value);
					}

					for (final Delivery delivery : this.deliveries) {
						delivery.getListener().deliver(this.from, delivery.getRecipient(), dfos.getInputStream());
					}
				}
			}
		}
Class which implements the actual handler interface.
src/main/java/de/gessnerfl/fakesmtp/smtp/server/MessageListenerAdapter.java