Mam program Java, który używa javax.mail do wysyłania wiadomości SMTP. Ten program działa dobrze na Linuksie, chcę to wcześniej podkreślić. Gdy próbuję tego samego kodu na moim Windows 7 x64 pole, dostaję ten błąd:Tajemnica Java Mail - SMTP zablokowany?
send failed, exception: javax.mail.MessagingException: Could not connect to SMTP host: smtp.west.cox.net, port: 25;
nested exception is: java.net.SocketException: Network is unreachable: connect
Oto kod:
Session session = Session.getInstance(props, null);
MimeMessage msg = new MimeMessage(session);
msg.setFrom();
msg.setRecipients(Message.RecipientType.TO, props.getProperty("mail.to", "[email protected]"));
msg.setSubject(mySubject);
msg.setSentDate(new Date());
msg.setContent(sBuf.toString(), "text/html");
Transport.send(msg);
Ten program dość dużo używa domyślnych za wszystko. Działa dobrze na innym polu w tej samej sieci. Używa tych samych ustawień, których używam dla mojego zwykłego klienta pocztowego, co działa dobrze. Na tym pudełku systemu Windows jest coś, co blokuje SMTP, ale tylko dla Javy.
Mam zainstalowany program Symantec (Norton) 360. Wyłączenie go nie ma znaczenia, ale ponowne uruchomienie w trybie awaryjnym (który wyłącza prawie wszystko) pozwala programowi pracować i wysyłać pocztę dobrze.
Tak więc, aby podsumować:
- Kod programu działa.
- Ustawienia są prawidłowe.
- SMTP działa dla Poczty systemu Windows i jest blokowany tylko dla Javy na tym komputerze z systemem Windows.
Zanim spędzę kolejny dzień rozdzierając różne rzeczy i odinstalowując/ponownie instalując, zastanawiałem się, czy ktoś ma jakieś rady na temat naprawy?
co się stanie, jeśli spróbujesz "telnet smtp.west.cox.net 25" z wiersza poleceń? –
Jaką wersję systemu Windows? Czy Zapora systemu Windows jest aktywna? – Perception
Ponieważ twój kod działa w trybie awaryjnym ... to nie jest twój kod. Podejrzewam, że Java nie była dozwolona przez zaporę systemu Windows. –