Как отправить письмо с нашего почтового сервера в 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-адреса. В ЛЮБОМ внешнем форуме.

Другие вопросы по тегам