How to test that the mail server is alive with Java?

From the JavaMail API, you could try sending an email and seeing if it was sent successfully.

From a connectivity standpoint, you could just ping it:

  InetAddress host = InetAddress.getByName("mailserver");
  System.out.println("host.isReachable(1000) = " + host.isReachable(1000));

If you've got a reference to a Session instance, you could do the following:

Session s = //a JavaMail session I got from somewhere
boolean isConnected = s.getTransport("smtp").isConnected();

If the mail client is connected to the appropriate SMTP server, it usually means it's alive.


From this Link; you can use the following logic:

public boolean isAlive() throws MessagingException {
  session.setDebug(true);
  Transport transport = session.getTransport("smtp");
  transport.connect();
  if (transport.isConnected()) {
    transport.close();
    return true;
  }
  return false;
}