¿Hay alguna manera con la API JavaMail de verificar que el servidor de correo utilizado esté activo? Si no, ¿cómo hacerlo con el código de Java?¿Cómo probar que el servidor de correo está vivo con Java?
Gracias de antemano por su ayuda.
¿Hay alguna manera con la API JavaMail de verificar que el servidor de correo utilizado esté activo? Si no, ¿cómo hacerlo con el código de Java?¿Cómo probar que el servidor de correo está vivo con Java?
Gracias de antemano por su ayuda.
Si usted tiene una referencia a una instancia Session, se puede hacer lo siguiente:
Session s = //a JavaMail session I got from somewhere
boolean isConnected = s.getTransport("smtp").isConnected();
Si el correo el cliente está conectado al servidor SMTP apropiado, generalmente significa que está activo.
Desde la API de JavaMail, puede intentar enviar un correo electrónico y ver si se envió con éxito.
Desde un punto de vista conectividad, sólo podía hacer ping:
InetAddress host = InetAddress.getByName("mailserver");
System.out.println("host.isReachable(1000) = " + host.isReachable(1000));
Ok, entonces confirma que la primera solución es la única: un servidor no necesita responder para hacer ping correctamente. –
@DenisR. Correcto, un servidor puede ignorar las solicitudes de eco ICMP. – Icarus
No es realmente la única solución posible. Los servidores SMTP pueden ignorar las solicitudes de eco ICMP, pero no ignoran las conexiones TCP al puerto 25. –
Define el estado "el servidor de correo está activo". – pingw33n