Logback SMTPAppender not sending email

email, java, logback, maven, smtpappender

Solution

It seems to have been an issue with the SMTP server I was using. I setup Papercut as a local smtp server and I can see it receive the messages

Problem

I am attempting to use Logback for logging in my java application. I believe I have it correctly configured, but when an error is logged INFO in ch.qos.logback.classic.net.SMTPAppender[EMAIL] - About to send out SMTP message "Testing Main" to [XXXX@optonline.net] is printed to the console, nothing else is printed after that, and the email is never received. If I enter an invalid smtp host or username/password in the config it fails immediately on attempting to send, so it is establishing a connection. My POM: ``` <repositories> <repository> <id>Java.Net</id> <url>http://download.java.net/maven/2/</url> </repository> </repositories> <dependencies> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.6</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>1.7.6</version> </dependency> </dependencies> ``` logback.xml ``` <configuration> <!-- dump status message on the console as they arrive --> <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" /> <appender name="EMAIL" class="ch.qos.logback.classic.net.SMTPAppender"> <smtpHost>mail.optonline.net</smtpHost> <username>xxxxx</username> <password>xxxxxx</password> <smtpPort>587</smtpPort> <to>xxxxx@optonline.net</to> <from>xxxxx@optonline.net</from> <subject>Testing %logger {20} - %m</subject> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>%d {HH:mm:ss.SSS} [%thread] %-5level %logger {1} -%msg%n </pattern> </layout> </appender> <root level="info"> <appender-ref ref="EMAIL" /> </root> </configuration> ``` The console ``` 10:45:44,596 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy] 10:45:44,596 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml] 10:45:44,596 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/C:/Users/xxxxx/workspace/logback-test/target/classes/logback.xml] 10:45:44,650 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set 10:45:44,658 |-INFO in ch.qos.logback.core.joran.action.StatusListenerAction - Added status listener of type [ch.qos.logback.core.status.OnConsoleStatusListener] 10:45:44,673 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.classic.net.SMTPAppender] 10:45:44,688 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [EMAIL] 10:45:44,765 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO 10:45:44,765 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [EMAIL] to Logger[ROOT] 10:45:44,766 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration. 10:45:44,767 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@ddc652f - Registering current configuration as safe fallback point 10:45:44,774 |-INFO in ch.qos.logback.classic.net.SMTPAppender[EMAIL] - SMTPAppender [EMAIL] is tracking [1] buffers exiting 10:45:44,791 |-INFO in ch.qos.logback.classic.net.SMTPAppender[EMAIL] - About to send out SMTP message "Testing Main" to [xxxxx@optonline.net] 10:45:44,791 |-INFO in ch.qos.logback.classic.net.SMTPAppender[EMAIL] - About to send out SMTP message "Testing Main" to [xxxxx@optonline.net] ``` This is the code that is running to produce my test errors ``` logger.error("Entering app"); logger.error("exiting app"); System.out.println("exiting"); ``` Any help debugging this issue would be greatly appreciated Thank you

Original source