JavaMail 不会从 Google 以外的发件人处检索邮件

JavaMail doesnt retrieve mail from sender other than Google

我正在使用 javamail 库开发简单的应用程序以通过 gmail 发送加密邮件。在到处旅行和谷歌搜索之后,终于完成了。至少直到今晚我 运行 它再次出现,突然间它不再阅读来自 google 的任何电子邮件。

我的代码是这样的

public static void check(String host, String storeType, String user,
            String password) {
        try {

            //create properties field
            Properties properties = new Properties();

            properties.put("mail.pop3.host", host);
            properties.put("mail.pop3.port", "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 store = emailSession.getStore("pop3s");

            store.connect(host, user, password);

            //create the folder object and open it
            Folder emailFolder = store.getFolder("INBOX");
            emailFolder.open(Folder.READ_ONLY);

            // retrieve the messages from the folder in an array and print it
            Message[] messages = emailFolder.getMessages();
            System.out.println("messages.length---" + messages.length);

            for (int i = 0, n = messages.length; i < n; i++) {
                Message message = messages[i];
                System.out.println("---------------------------------");
                System.out.println("Email Number " + (i + 1));
                System.out.println("Subject: " + AESencrp.decrypt(message.getSubject()));
                System.out.println("From: " + message.getFrom()[0]);
                System.out.println("Text: " + AESencrp.decrypt(message.getContent().toString()));

            }

            //close the store and folder objects
            emailFolder.close(false);
            store.close();

        } catch (NoSuchProviderException e) {
            e.printStackTrace();
        } catch (MessagingException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

它只显示来自 google 的电子邮件,但是还有另外 3 封来自其他地址的电子邮件。我不明白,上次我 运行 那个代码,它工作得很好。请注意,我没有对上次 运行 成功的代码进行任何更改。

这些 JavaMail FAQ 条目可能会有所帮助: