2016-10-13 1 views
0

그래서 조직에서 Exchange 서버의 전자 메일 수신에 SMTP 프로토콜을 사용할 수 있는지 여부를 알고 싶습니다. 내가 읽었을 때 수신 표준은 POP3 또는 IMAP이고 SMTP 프로토콜은 송신 표준입니다. 내 질문은 수신 프로토콜로 SMTP을 사용할 수 있는지 여부입니다. 그렇다면 JavaMail API를 사용하여 메시지를 읽는 방법을 알고 싶습니다.SMTP를 Exchange 서버의 수신 프로토콜로 사용할 수 있습니까?

다음 코드를 시도하고 있습니다. 하지만 NoSuchProviderException

private void fetch(String incomingHost, String username, String password) { 
    try { 

     Properties properties = new Properties(); 
     properties.put("mail.store.protocol", "smtp"); 
     properties.put("mail.smtp.host", incomingHost); 
     properties.put("mail.smtp.port", 25); 
     properties.put("mail.smtp.starttls.enable", false); 

     emailSession = Session.getInstance(properties); 

     Store store = emailSession.getStore(); 

     store.connect(incomingHost, 25, username, password); 

     // create the folder object and open it 
     Folder emailFolder = store.getFolder("INBOX"); 
     emailFolder.open(Folder.READ_ONLY); 

     BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 

     Message[] messages = emailFolder.getMessages(); 
     System.out.println("messages.length---" + messages.length); 

     for (int i = 0; i < messages.length; i++) { 
      Message message = messages[i]; 
      System.out.println("---------------------------------" + message.getDescription()); 
      //writePart(message); 
      String line = reader.readLine(); 
      if ("YES".equals(line)) { 
       message.writeTo(System.out); 
      } else if ("QUIT".equals(line)) { 
       break; 
      } 
     } 

     // close the store and folder objects 
     emailFolder.close(false); 
     store.close(); 

    } catch (javax.mail.NoSuchProviderException e) { 
     e.printStackTrace(); 
    } catch (MessagingException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

답변

1

간단한 대답을 얻는 것은 "아니오"하지만 유래가 충분히 답을 만들기 위해 모든 단어를 추가하기 위해 저를 필요로합니다.

+0

나는 의심의 여지가있다. JavaMail API를 통해 MS Exchange 서버에서 이메일을 가져올 수 있습니까? 그렇다면 어떻게? MS Exchange에서 메일을 가져 오는 데 정확히 서버 세부 정보가 필요합니다. –

+1

Exchange에서 IMAP 지원을 활성화해야합니다. 그런 다음 JavaMail을 사용하여 다른 IMAP 서버와 마찬가지로 Exchange에서 메일을 가져올 수 있습니다. 시작하려면 [JavaMail FAQ] (http://www.oracle.com/technetwork/java/javamail/faq/index.html)를 참조하십시오. –

+0

고마워요 @Shannon –