Как отправить письмо с нашего почтового сервера в Java
Это мой код...
final String from = "demo@ourmail.com";
final String password = "demo1234";
Properties props = new Properties();
props.put("mail.smtp.host", "14.141.48.131");
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(from, password);
}
});
try {
String subject = "Registeration conformation for happy shopping";
String to = demo@gmail.com;
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(to));
message.setSubject(subject);
message.setContent("<html>\n"
+ "<body>\n"
+ "\n"
+ "<p> you are successsfully login</p>"
+ "</body>\n"
+ "</html>", "text/html");
Transport.send(message);
System.out.println("end of utility");
} catch (Exception ex) {
System.out.println(ex);
}
После выполнения этого генерируется исключение, т.е.
javax.mail.MessagingException: Could not connect to SMTP host: 14.141.48.131, port: 25;
nested exception is:
java.net.SocketException: Permission denied: connect
Пожалуйста, предложите, как я могу справиться с этим исключением.
1 ответ
Ваш код Java выглядит хорошо. Успешное общение с вашим почтовым сервером - сложная часть.
Возможно, вы используете Java 7, и, возможно, (по этой ссылке) проблему можно решить, установив этот простой параметр JVM: -Djava.net.preferIPv4Stack=true
,
Обязательно проверьте брандмауэр (убедитесь, что SMTP-порт открыт между вашей Java-программой и почтовым сервером) и обязательно проверьте наличие антивирусных программ, которые могут ограничивать SMTP на почтовом сервере.
Или, возможно, вашему почтовому серверу требуется зашифрованный по протоколу SSL/TLS SMTP-порт 465 (вместо SMTP-порта 25).
Опять же, возможно, ваш провайдер / интернет-провайдер вообще не разрешает SMTP.
Есть миллион возможностей. Поговорите с вашим сетевым администратором. И попробуйте следующие советы по устранению неполадок SMTP (независимо от отладки вашей Java-программы):
PS:
Никогда и никогда!!!! публиковать реальные имена пользователей, пароли... или IP-адреса. В ЛЮБОМ внешнем форуме.