Попытка написать программу API Java, но получаю следующую ошибку:
Could not connect to SMTP host: smtp.gmail.com, port: 587;
nested exception is:
java.net.ConnectException: Operation timed out
Вот код Java, который я написал:
String HOST = "smtp.gmail.com";
String PORT = "587";
String USERNAME = "myname@gmail.com";
String PASSWORD = "myPassword";
Properties properties = System.getProperties();
properties.put("mail.smtp.host", HOST);
properties.put("mail.smtp.port", PORT);
properties.put("mail.smtp.user", USERNAME);
properties.put("mail.smtp.password", PASSWORD);
Session session = Session.getDefaultInstance(properties);
// 2) compose message
try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(request.getSenderEmailId()));
InternetAddress[] addressTo = new InternetAddress[request.getRecipients().size()];
for (int i = 0; i < request.getRecipients().size(); i++) {
addressTo[i] = new InternetAddress(request.getRecipients().get(i));
}
message.addRecipients(Message.RecipientType.TO, addressTo);
// 3) create MimeBodyPart object and set your message text
BodyPart messageBodyPart1 = new MimeBodyPart();
// 4) create new MimeBodyPart object and set DataHandler object to
// this object
Multipart multipart = new MimeMultipart();
messageBodyPart1.setContent(request.getContent(),
EmailConstants.TYPE_HTML);
message.setSubject(request.getSubject());
multipart.addBodyPart(messageBodyPart1);
// 6) set the multiplart object to the message object
message.setContent(multipart);
// 7) send message
Transport.send(message);
} catch (MessagingException ex) {
ex.printStackTrace();
}
Теперь я перепробовал все варианты, которые смог найти здесь, в StackOverflow, но ничего не помогло. Пробовал MkYong.com Java Mail Пример , но та же ошибка.
Также изменил PORT
на 465
и добавил эти операторы в свойствах, но все еще та же проблема.
properties.put("mail.smtp.socketFactory.port", PORT);
properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
Интересно, я использую тот же код для отправки электронных писем с моего corp-account
, и он работает просто отлично. Только что предоставил имя хоста corp и порт как 25, и он работает.
Я пытаюсь развернуть это в AWS, где учетная запись corp не работает, поэтому необходимо выполнить миграцию в Gmail.
Я использую Java 8
и Mail API
:
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>
Я пытаюсь пинговать на smtp.gmail.com
, который подключается, но когда я делаю telnet smtp.gmail.com 587
, он продолжает пытаться, но не подключается.
Буду признателен за любую помощь.