2016-10-13 4 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

を取得することは簡単な答えは「ノー」ですが、stackoverflowのは、十分な長さの答えを作るために、すべてのこれらの単語を追加するために私を必要とします。

+0

私は疑いがあります。 JavaMail APIを介してMS Exchangeサーバーから電子メールを取得できますか?もしそうなら、どうですか? MS Exchangeからのメールを取得するためにサーバーの詳細を正確に把握するには –

+1

ExchangeでIMAPサポートを有効にする必要があります。その後、他のIMAPサーバーと同様に、JavaMailを使用してExchangeからメールを取得できます。開始するには、[JavaMail FAQ](http://www.oracle.com/technetwork/java/javamail/faq/index.html)を参照してください。 –

+0

ありがとう@Shannon –

関連する問題