Может ли SMTP использоваться в качестве входящего протокола на сервере Exchange

#smtp #jakarta-mail #exchange-server

#smtp #джакарта-почта #exchange-сервер

Вопрос:

Итак, я хочу знать, может ли организация использовать или нет протокол SMTP для получения электронных писем с сервера Exchange. Как я читал, стандартом для получения является POP3 or IMAP , а SMTP протокол является стандартным для отправки. Мой вопрос только в том, можно ли использовать его 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:

Простой ответ «нет», но stackoverflow требует, чтобы я добавил все эти слова, чтобы сделать ответ достаточно длинным.

Комментарии:

1. у меня есть сомнения. можем ли мы получать электронные письма с сервера MS Exchange через JavaMail API. если да, то как? какие именно данные сервера понадобятся для получения почты из MS exchange

2. Необходимо включить поддержку IMAP в Exchange. Затем вы можете использовать JavaMail для получения почты с Exchange, как и с любого другого сервера IMAP. Для начала ознакомьтесь с часто задаваемыми вопросами JavaMail .

3. Большое спасибо @Shannon