Я не могу написать код на java, ошибка java.net.ConnectException: Connection timed out: connect
Есть такой класс, с помощью которого моё приложение должно отправлять сообщение с одного [email protected] на другой [email protected], соответственно я заменил настоящий пароль и адрес но при выполнении кода получаю ошибку
Exception in thread "main" com.sun.mail.util.MailConnectException: Couldn't connect to host, port: imap.yandex.ru, 465; timeout -1;
nested exception is:
java.net.ConnectException: Connection timed out: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2209)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:740)
at javax.mail.Service.connect(Service.java:388)
at javax.mail.Service.connect(Service.java:246)
at javax.mail.Service.connect(Service.java:195)
at javax.mail.Transport.send0(Transport.java:254)
at javax.mail.Transport.send(Transport.java:124)
at Main.main(Main.java:38)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.base/sun.nio.ch.Net.connect0(Native Method)
at java.base/sun.nio.ch.Net.connect(Net.java:576)
at java.base/sun.nio.ch.Net.connect(Net.java:565)
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:333)
at java.base/java.net.Socket.connect(Socket.java:645)
at java.base/java.net.Socket.connect(Socket.java:595)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:359)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2175)
... 7 more
Вот сам код
import java.util.Date;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class Main {
private static String password = "mypswrd";
private static String user = "[email protected]";
private static String host = "imap.yandex.ru";
public static void main(String[] args) throws MessagingException {
String to = "[email protected]";
String hostSMTP = "smtp.yandex.ru";
Integer port = 465;
Properties prop = new Properties();
prop.put("mail.smtp.host", host);
prop.put("mail.smtp.ssl.enable", "true");
prop.put("mail.smtp.port", port);
prop.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(prop, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, password);
}
});
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(user));
InternetAddress[] addresses = {new InternetAddress(to) };
msg.setRecipients(Message.RecipientType.TO, addresses);
msg.setSubject("Email from java");
msg.setSentDate(new Date());
msg.setText("Пример Пример ");
Transport.send(msg);
}
}
как решить проблему?
Я пробовал так же делать с помощью gmail, но не получилось, такая же проблема.
с интернетом всё в порядке,
на почте настроил доступ по imap.
Ответы (1 шт):
Вам надо поставить пароль не от почты, а сгенерировать пароль для сторонних приложений. Потому что и яндекс и гугл не примут ваш пароль от почты не через их приложение - подробнее - support.google.com/accounts/answer/185833
Попробовал ваш код на своей почте - код рабочий, дело только в пароле.