2012-02-15 19 views

Odpowiedz

6

Jeśli masz odwołanie do instancji Session, można wykonać następujące czynności:

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

Jeśli poczta klient jest podłączony do odpowiedniego serwera SMTP, zazwyczaj oznacza, że ​​jest żywy.

3

Z interfejsu API JavaMail można spróbować wysłać wiadomość e-mail i sprawdzić, czy została wysłana pomyślnie.

Z punktu widzenia łączności, może po prostu ping go:

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

Ok, więc potwierdzasz, że pierwsze rozwiązanie jest jedyne: serwer nie musi odpowiadać, aby ping działał poprawnie. –

+0

@DisisR. Prawidłowo, serwer może bardzo dobrze ignorować żądania echa ICMP. – Icarus

+0

To naprawdę nie jest jedyne możliwe rozwiązanie. Serwery SMTP mogą bardzo dobrze ignorować żądania echa ICMP, ale nie ignorują połączeń TCP do portu 25. –

Powiązane problemy