Có cách nào với API JavaMail để kiểm tra xem máy chủ thư được sử dụng có còn hoạt động không? Nếu không, làm thế nào để nó với mã Java?Làm cách nào để kiểm tra xem máy chủ thư có còn hoạt động với Java không?
Cảm ơn trước vì sự giúp đỡ của bạn.
Có cách nào với API JavaMail để kiểm tra xem máy chủ thư được sử dụng có còn hoạt động không? Nếu không, làm thế nào để nó với mã Java?Làm cách nào để kiểm tra xem máy chủ thư có còn hoạt động với Java không?
Cảm ơn trước vì sự giúp đỡ của bạn.
Nếu bạn đã có một tham chiếu đến một trường hợp Session, bạn có thể làm như sau:
Session s = //a JavaMail session I got from somewhere
boolean isConnected = s.getTransport("smtp").isConnected();
Nếu thư client được kết nối với máy chủ SMTP thích hợp, nó thường có nghĩa là nó vẫn còn sống.
Từ API JavaMail, bạn có thể thử gửi email và xem liệu email đó có được gửi thành công hay không.
Từ một quan điểm kết nối, bạn chỉ có thể ping nó:
InetAddress host = InetAddress.getByName("mailserver");
System.out.println("host.isReachable(1000) = " + host.isReachable(1000));
Ok, vì vậy bạn xác nhận rằng giải pháp đầu tiên là giải pháp duy nhất: máy chủ không cần trả lời ping để hoạt động chính xác. –
@DenisR. Đúng, một máy chủ rất có thể bỏ qua các yêu cầu echo ICMP. – Icarus
Nó không thực sự là giải pháp duy nhất có thể. Các máy chủ SMTP rất có thể bỏ qua các yêu cầu echo ICMP, nhưng chúng không bỏ qua các kết nối TCP tới cổng 25. –
Xác định trạng thái "máy chủ thư đang hoạt động". – pingw33n