gpt4 book ai didi

java - 无法使用 JavaMail POP 获取 Gmail 收件箱

转载 作者:行者123 更新时间:2023-12-01 11:06:49 25 4
gpt4 key购买 nike

我正在尝试使用 Javamail 从 Gmail 收件箱中获取未读邮件,但不能。我只检索存档的邮件(从 2011 年开始!!!),但我不知道为什么或如何执行此操作。

这是我的代码:

public List<DefaultMessage> getLatestNthMessages(Integer numberOfMessages) throws Exception {
URLName url = new URLName("pop3", "pop.gmail.com", 995, "",username, password);
Store store = new POP3SSLStore(pullSession, url);
store.connect();
Folder inbox = store.getFolder("INBOX");

inbox.open(Folder.READ_WRITE);

SearchTerm st = new FlagTerm(new Flags(Flags.Flag.SEEN), false);
List<Message> msgs = Arrays.asList(inbox.search(st)).stream()
.sorted((m1, m2) -> m2.getMessageNumber() - m1.getMessageNumber())
.limit(numberOfMessages)
.collect(Collectors.toList());
List<DefaultMessage> listOfMessages = new ArrayList<>();
for (Message message : msgs) {
listOfMessages.add(wrapperToMessage(message));
}

return listOfMessages;
}

pullSession 实例化如下:

    Properties pullProps = new Properties();

pullProps.put("mail.pop3.host", pullHost);
pullProps.put("mail.pop3.username", username);
pullProps.put("mail.pop3.port", pullPort);
pullProps.put("mail.pop3.socketFactory.port", pullPort);
pullProps.put("mail.pop3.socketFactory.fallback", "false");
pullProps.put("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
pullProps.put("mail.pop3.auth", "true");

pullSession = Session.getInstance(pullProps, null);

pullSession.setDebug(true);

最佳答案

检查您的Gmail settings对于 POP3。

此外,您的代码中还有很多可以改进的地方,尽管它们不是问题的根源。首先修复所有 common JavaMail mistakes .

您不应该直接创建 POP3SSLStore。使用Gmail example code in the JavaMail FAQ .

关于java - 无法使用 JavaMail POP 获取 Gmail 收件箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32868867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com