проблема соединения smtp почты java - PullRequest
3 голосов
/ 04 августа 2011

Я пытаюсь в приведенном ниже примере отправить почту, используя ssl, выбранный из здесь и измененный с моими учетными данными, как показано ниже, и получить исключение, как показано, не могли бы вы помочь мне пройти через него

import javax.mail.*;
import javax.mail.internet.*;

import java.util.Properties;


public class SimpleSSLMail {

    private static final String SMTP_HOST_NAME = "xx.xx.xx.xx";
    private static final int SMTP_HOST_PORT = 25 ;//465;
    private static final String SMTP_AUTH_USER = "xxx@yyy.com";
    private static final String SMTP_AUTH_PWD  = "xxxx";

    public static void main(String[] args) throws Exception{
       new SimpleSSLMail().test();
    }

    public void test() throws Exception{
        Properties props = new Properties();

        props.put("mail.transport.protocol", "smtps");
        props.put("mail.smtps.host", SMTP_HOST_NAME);
        props.put("mail.smtps.auth", "true");
        // props.put("mail.smtps.quitwait", "false");

        Session mailSession = Session.getDefaultInstance(props);
        mailSession.setDebug(true);
        Transport transport = mailSession.getTransport();

        MimeMessage message = new MimeMessage(mailSession);
        message.setSubject("Testing SMTP-SSL");
        message.setContent("This is a test", "text/plain");

        message.addRecipient(Message.RecipientType.TO,
             new InternetAddress("myid@gmail.com"));

        transport.connect
          (SMTP_HOST_NAME, SMTP_HOST_PORT, SMTP_AUTH_USER, SMTP_AUTH_PWD);

        transport.sendMessage(message,
            message.getRecipients(Message.RecipientType.TO));
        transport.close();
    }
}

Исключение:

Exception in thread "main" javax.mail.MessagingException: Could not connect to SMTP host:xx.xx.xx.xx, port: 25;
  nested exception is:
    java.net.ConnectException: Connection timed out: connect
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1282)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
    at javax.mail.Service.connect(Service.java:275)

1 Ответ

3 голосов
/ 04 августа 2011

Этот тип проблемы возникает из-за проблемы в сети.Может быть, вам требуется аутентификация, возможно, вы неправильно указали имя пользователя и пароль.

В любом случае, вам не хватает многих вещей в вашем коде. Пример получения правильного SSL-соединения с сервером Gmail

props.put("mail.smtp.socketFactory.port", "465");
 props.put("mail.smtp.socketFactory.class",
                           "javax.net.ssl.SSLSocketFactory");
 props.put("mail.smtp.auth", "true");
 props.put("mail.smtp.port", "465");

Я не вижу этого где-либо в вашем коде.Тогда где метод аутентификации?

Просто проверьте следующие ссылки:

Отправка электронной почты с использованием Gmail в Java Здесь у вас есть выбор использования TLS или SSl

Java Mail API

Электронная почта через Java

ключей, используемых в почтовой системе Java для вашей справки

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