Отправка электронной почты с использованием SMTP - PullRequest
0 голосов
/ 01 сентября 2011

привет, я написал этот код для подключения SMTP, он отлично работает для smtp.gmail.com, но не для моего клиента для IP 10.5.128.146 с портом № 25.

здесь код ..... Можете ли вы предложить мне какое-либо решение.

 import java.util.Properties;
 import javax.mail.Message;
 import javax.mail.MessagingException;
 import javax.mail.PasswordAuthentication;
 import javax.mail.Session;
 import javax.mail.Transport;
 import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeMessage;

public class SendMailSSL {
public static void main(String[] args) {
    Properties props = new Properties();
    props.put("mail.smtp.host", "10.5.128.146");
    props.put("mail.smtp.socketFactory.port", "25");
    props.put("mail.smtp.socketFactory.class",
            "javax.net.ssl.SSLSocketFactory");
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.port", "25");

    Session session = Session.getDefaultInstance(props,
        new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("username","password");
            }
        });

    try {

        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress("xyz@mydomain.com"));
        message.setRecipients(Message.RecipientType.TO,
                InternetAddress.parse("abc@otherdomain.com"));
        message.setSubject("Testing Subject");
        message.setText("Dear Mail Crawler," +
                "\n\n No spam to my email, please!");

        Transport.send(message);

        System.out.println("Done");

    } catch (MessagingException e) {
        throw new RuntimeException(e);
    }
}

}

показывает ошибку времени ожидания соединения.Кто-нибудь может сказать мне, действительно ли это проблема программирования или проблема на стороне сервера. Если на стороне сервера, то что я могу предложить им сделать.

Спасибо за успех

Ответы [ 3 ]

2 голосов
/ 01 сентября 2011

Вы, кажется, изменили фрагмент соединения GMail. GMail требует SSL, но традиционный SMTP-сервер «порт 25» этого не делает, поэтому рукопожатие не работает должным образом.

Я бы предложил удалить свойства mail.smtp.socketFactory.class и mail.smtp.auth.

1 голос
/ 01 сентября 2011

Тайм-аут предполагает, что порт 25 защищен брандмауэром, а брандмауэр просто отбрасывает пакеты, а не отвечает отказанным соединением.

0 голосов
/ 01 сентября 2011

проверьте, можете ли вы использовать telnet на 25-м порту для вашего IP-адреса ... если вы можете использовать telnet, это означает, что порт не защищен брандмауэром и есть проблемы с подключением .... если он заблокированчерез брандмауэр, вам нужно применить правила, чтобы разрешить это соединение !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...