gpt4 book ai didi

java - 获取 'seen' 标志似乎不起作用

转载 作者:搜寻专家 更新时间:2023-11-01 02:53:35 26 4
gpt4 key购买 nike

我正在尝试使用 java 的默认 pop3 实现,但无法让它读取标志的实际状态(我认为)。

这是(缩写的)代码:

Store store = null;
Folder folder = null;
try
{
Session mailSession = Session.getInstance(new Properties(), null);
store = mailSession.getStore("pop3");
store.connect(host, addr, pwd);
folder = store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);

for (Message msg : folder.getMessages())
{
if (msg.isSet(Flag.SEEN))
continue;

LOG.debug("processing email titled '" + msg.getSubject()
+ "' from '" + msg.getFrom()[0] + "'");

... do some stuff

msg.setFlag(Flag.SEEN, true);
}
}
finally
{
if (folder != null)
folder.close(true);
if (store != null)
store.close();
}

问题是每次执行上述代码时,都会处理相同的消息(所有消息),因为对 msg.isSet(Flag.SEEN) 的调用总是返回 false,即使我已在上一次迭代中将其设置为 true。

网络邮件客户端甚至会反射(reflect)正在设置的标志(标题从粗体变为普通字体)。

有人知道我做错了什么吗?

谢谢,p。

最佳答案

进一步阅读告诉我 pop3 不支持设置/获取这些标志,只支持删除消息。

似乎 pop3 支持设置标志(因为我可以看到标志已在 webmail 程序中成功设置)但随后无法读取标志状态。

谢天谢地,我的邮件服务器支持 imap,它可以按预期执行所有操作。我只需要将我的代码从 mailSession.getStore("pop3") 更改为 mailSession.getStore("imap")

关于java - 获取 'seen' 标志似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6422490/

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