Java * получить * почту от SMTP-сервера - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь получить электронное письмо от SMTP-сервера Exchange (порт 25). все примеры, которые я видел, - это отправка электронного письма с SMTP, в то время как я хотел бы получить (прочитать) электронное письмо. Я написал код, используя JAVAMail, который получает электронную почту с импами, которые отлично работают, но в последний момент менялось требование использовать SMTP для входящей почты.

Java-код для входящей почты IMAP

 public void getAttachment() throws MessagingException, IOException {
        properties.setProperty("exchange server host",host);
        properties.put("smtp.gmail.auth", "true");
        Session session = Session.getDefaultInstance(properties, new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(user, password);
                }
                }
        );

        Store store = session.getStore("imaps");
        try {
            logger.info(String.format("Going to get connection to exchange server %s for user %s " ,host, user));
            store.connect(host, user, password);
        }
        catch (MessagingException ex){
            logger.error(String.format("Unable to connect exchange server {}", host) + ex.getMessage());
            logger.error(ex.getStackTrace());
        }
        Folder inboxFolder = store.getFolder("inbox");
        inboxFolder.open(Folder.READ_WRITE);
        // search for all "unseen" messages
        Flags seen = new Flags(Flags.Flag.SEEN);
        FlagTerm unseenFlagTerm = new FlagTerm(seen, false);
        Message[] message = inboxFolder.search(unseenFlagTerm);

Может кто-нибудь посоветовать, пожалуйста, получать почту по протоколу SMTP, а не по IMAP? это можно сделать?

Спасибо.

1 Ответ

2 голосов
/ 23 октября 2019

Вы не можете.

SMTP для клиента отправить электронное письмо на сервер.

Для того, чтобы клиент для получения электронной почты с сервера вам необходимо использовать протоколы, такие как POP3 (протокол почтового отделения) или IMAP (протокол доступа к сообщениям в Интернете).

На самом деле, страница Wikipedia для SMTP говорит так:

Пользовательский уровень почтовые клиенты обычно используют SMTP только для отправки сообщений на почтовый сервер для ретрансляции, обычно для отправки исходящей электронной почтына почтовый сервер через порт 587 или 465 согласно RFC 8314 . Для извлечения сообщений IMAP и POP3 являются стандартными, но проприетарные серверы также часто реализуют проприетарные протоколы, например, Exchange ActiveSync .

...