Asynchronous logging using custom log4j appender and ExecutorService
The UpperCamelCase format is used to name types. You should rename your classes (and constructors) to EmailAppender and EmailSender.

The ExecutorService has a shutdown method that you can use to reject new tasks and terminate the current ones. You may shutdown your pool form the close method. And there is a nice code sample in the official documentation : https://docs.oracle.com/javase/9/docs/api/java/util/concurrent/ExecutorService.html

I guess you should also avoid to use System.out.println and e.printStackTrace(). They will both print unexpected messages on the console. Imagine that your code will be shipped in a library, once a dev will use your library he will suddenly got things printed on his console.

Aside of that I don't see anything wrong. 

On a more personal point of view, I would have tried to extract the "configuration" (Creation of Properties and creation of the instance) to another class so that you make a clear distinction between the conversion of the LoggingEvent to an email and the sending of an email message.