2012-05-22 2 views
2

Я пытаюсь получить доступ к сообщениям mailanators с помощью JavaMail API.Доступ к Mailinator POP3 с использованием JavaMail

Я могу правильно подключиться к серверу и т. Д., Но когда дело доходит до чтения сообщения, я продолжаю получать исключение «Folder is not Open», и когда я проверяю, открыта ли папка и если не открывается папка, помогите. Я думаю, почему-то почтальон заканчивает соединение или около того.

Если я пытаюсь получить входной поток сообщения вместо использования getContent, я могу читать из потока ввода, и он содержит стиль сообщения и т. Д., Но по какой-то причине кажется, что данные, которые я читаю из входного потока, не содержат сообщения body ..

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

My current mail reading code.

private void checkMail(String user) { 
    Properties props = new Properties(); 
    Session session = Session.getDefaultInstance(props, null); 
    try { 
     Store store = session.getStore("pop3"); 
     store.connect("pop.mailinator.com", 110, user, "12345678"); 
     Folder inbox = store.getFolder("inbox"); 
     if(inbox == null) { 
      System.out.println("no inbox"); 
     } else { 
      inbox.open(Folder.READ_ONLY); 
      for(Message message: inbox.getMessages()) { 

       byte[] buffer = new byte[10000]; 

       int read = 0; 

       try { 

        while((read = message.getInputStream().read(buffer, 0, 1024)) > 0) { 
         for(int i = 0; i < buffer.length; i++) { 
          System.out.print((char)buffer[i]); 
         } 
        } 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 

       /*try { 
        System.out.println(message.getContent().toString()); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       }*/ 
      } 
     } 
     inbox.close(false); 
     store.close(); 
    } catch (NoSuchProviderException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (MessagingException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

} 

также при чтении из входного потока, похоже, входной поток никогда не заканчивается, только начиная с конца. Моя цель - получить тело сообщения и тему.

ответ

0

Если вы читаете InputStream из сообщения, тогда ясно, что папка открыта. Когда вы получаете исключение «Папка не открыта»? Что показывает protocol trace? Вы можете попробовать использовать Gmail, если вы считаете, что ваш сервер является портом проблемы. Кроме того, вам нужно будет fix your use of getDefaultInstance.

0

Некоторое время назад Mailinator изменил поведение, запретив доступ к POP3 (или только резервирование для оплаты клиентов). Возможно, это была ваша проблема (если код работал с другим почтовым провайдером).

Смежные вопросы