C'è un modo con JavaMail API per verificare che il server di posta utilizzato sia vivo? In caso negativo, come fare con il codice Java?Come verificare che il server di posta sia attivo con Java?
Grazie per l'aiuto.
C'è un modo con JavaMail API per verificare che il server di posta utilizzato sia vivo? In caso negativo, come fare con il codice Java?Come verificare che il server di posta sia attivo con Java?
Grazie per l'aiuto.
Se hai un riferimento a un'istanza di Session, si potrebbe procedere come segue:
Session s = //a JavaMail session I got from somewhere
boolean isConnected = s.getTransport("smtp").isConnected();
Se la posta il client è connesso al server SMTP appropriato, di solito significa che è vivo.
Dall'API JavaMail, è possibile provare a inviare un'email e vedere se è stata inviata correttamente.
Dal punto di vista della connettività, si può solo rumore metallico:
InetAddress host = InetAddress.getByName("mailserver");
System.out.println("host.isReachable(1000) = " + host.isReachable(1000));
Ok, quindi confermi che la prima soluzione è l'unica: un server non ha bisogno di rispondere al ping per funzionare correttamente. –
@DenisR. Esatto, un server potrebbe ignorare le richieste echo ICMP. – Icarus
Non è davvero l'unica soluzione possibile. I server SMTP potrebbero ignorare le richieste echo ICMP, ma non ignorano le connessioni TCP alla porta 25. –
Definire lo stato "server di posta è vivo". – pingw33n