Gmail Imap - не удается подключиться, когда я нахожусь в сети офиса - PullRequest
2 голосов
/ 21 ноября 2011

Я работал дома на Gmail-Imap-Api в выходные дни.Это работало должным образом, но когда я вернулся в офис и пытался здесь, это выдает исключение.

    Properties props = System.getProperties();
    props.put("mail.store.protocol", "imaps");
    props.put("mail.smtp.auth", "true");

    try {
        boolean debug = false;
        Authenticator auth = new SMTPAuthenticator(
                "***", "***");

        Session session = Session.getInstance(props, auth);
        session.setDebug(debug);
        Store store = session.getStore("imaps");
        store.connect("imap.gmail.com", "***@gmail.com",
                "****");
    ......
    ......

Это работало нормально в домашней сети.Теперь я подумал, что я бы добавил прокси и добавил эти строки кода.

    System.setProperty("http.proxyHost", "****.com");
    System.setProperty("http.proxyPort", "8080");

Тем не менее это не работает, и исключение.

com.google.code.javax.mail.MessagingException: imap.gmail.com;
nested exception is:
java.net.UnknownHostException: imap.gmail.com
at com.google.code.com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:665)
at com.google.code.javax.mail.Service.connect(Service.java:295)
at com.google.code.javax.mail.Service.connect(Service.java:176)
at openReports.OpenReportsProject.main(OpenReportsProject.java:43)
Caused by: java.net.UnknownHostException: imap.gmail.com
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:367)
at java.net.Socket.connect(Socket.java:524)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:545)
at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:141)
at com.google.code.com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:288)
at com.google.code.com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:231)
at com.google.code.com.sun.mail.iap.Protocol.<init>(Protocol.java:113)
at com.google.code.com.sun.mail.imap.protocol.IMAPProtocol.<init>(IMAPProtocol.java:110)
at com.google.code.com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:632)
... 3 more

1 Ответ

5 голосов
/ 21 ноября 2011

Введенные вами настройки прокси будут работать только для HTTP-соединений.IMAP - это другой протокол, работающий на другом порту (в данном случае 993).Если вы находитесь за брандмауэром, ваш брандмауэр должен разрешить соединение с внешним хостом: порт и протокол. Вам необходимо запросить у вашего сетевого администратора это .Как только настройки будут выполнены, вы сможете подключаться к серверу Gmail Imap по умолчанию / указанному порту с указанным протоколом.

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