Как читать электронные письма из почтового ящика аккаунта GMail в Java? - PullRequest
1 голос
/ 10 июля 2020

Мне нужно прочитать электронную почту из учетной записи Gmail. Я написал следующий код:

public class ReadResponseToEmailTest {
    @Test
    public void testGmailConnection() throws MessagingException {
        Folder emailFolder = null;
        Store store = null;
        try {
            //create properties field
            Properties properties = new Properties();

            properties.put("mail.pop3.host", "pop.gmail.com");
            properties.put("mail.pop3.port", Integer.toString(995));
            properties.put("mail.pop3.starttls.enable", "true");

            Session emailSession = Session.getDefaultInstance(properties);

            //create the POP3 store object and connect with the pop server

            store = emailSession.getStore("pop3s");

            store.connect("pop.gmail.com", "myemail@gmail.com", "XXXXXXXX");

            //create the folder object and open it

            emailFolder = store.getFolder("INBOX");
            emailFolder.open(Folder.READ_ONLY);

            // retrieve the messages from the folder in an array and print it
            Message foundMessage = null;
            Message[] messages = emailFolder.getMessages();
            for (final Message msg : messages) {
                final String subject = msg.getSubject();
            }
        }
        finally {
            if (emailFolder != null) {
                emailFolder.close(false);
            }
            if (store != null) {
                store.close();
            }
        }

    }
}

messages содержит только старые сообщения. Кроме того, большинство этих сообщений не находится во входящих, а архивируются.

Как мне нужно изменить приведенный выше код, чтобы иметь возможность читать электронные письма из почтового ящика GMail (особенно недавно полученные единицы)?

1 Ответ

0 голосов
/ 13 июля 2020

Проверьте настройки своей учетной записи gmail :

  • В правом верхнем углу нажмите Настройки ⚙ ⇒ Просмотреть все настройки .

  • Щелкните вкладку Пересылка и POP / IMAP .

  • Включите POP для всей почты (даже почты который уже был загружен)

enter image description here

  • Also try to check second radio-button: Enable POP for mail that arrives from now on to not to receive archived messages.

See: Чтение сообщений Gmail в других почтовых клиентах с помощью POP - Справка Gmail

...