Java Mail network is unreacheable connect exception

Recently I stumbled upon a weird problem while debugging a simple java application that needed to send an email

Since I was debbuging this application locally I used the FakeSMTP tool that I described in this tutorial here : Testing email sending functionality with FakeSMTP which I run locally on my machine

So after editing the configuration on my Java program and firing up the SMTP server I was quite surprised to get the following exception :

Caused by: javax.mail.MessagingException: Could not connect to SMTP host:, port: 25 ( Network is unreachable: connect)
System.setProperty("" , "true");

So once you are sure you problem is not coming from a non running SMTP server or a network connection, you can check if the culprit is no other than Java

If you read the Oracle documentation here you will see that by default Java prefers IPv6 to IPv4 which is the problem in our case since FakeSMTP binds on IPv4

Luckily there is a way to force Java to prefer IPv4 over IPv6 using the system property

This can either be done :

  • programmatically
  • using java options

1. Programmatically

 System.setProperty("" , "true");

2. Using java options

java -jar myJar.jar

That should take care of the problem

Another solution would be to disable IPv6 networking on your machine but that may have other side effects on your system..

Popular posts from this blog

Multi-hop ssh tunnel - howto : Creating a SSH tunnel with port forwarding between multiple hosts

Spring boot and spring data jpa tutorial - A sample application using spring 4.0 spring boot and JPA (part 2/2)

MongoDB spring data $elemMatch in field projection