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;
}