SMTP可以用作Exchange服务器中的传入协议

时间:2016-10-13 12:39:07

标签: smtp javamail exchange-server

所以我想知道一个组织是否可以使用SMTP协议从Exchange服务器接收电子邮件。在我阅读时,接收标准为POP3IMAPSMTP协议是发送的标准。 我的问题是,是否可以使用SMTP作为传入协议。 如果是,那么我想知道如何使用JavaMail API读取其消息。

我正在尝试以下代码。但得到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 :(得分:1)

简单的答案是&#34; no&#34;,但stackoverflow要求我添加所有这些单词以使答案足够长。