我发现在从 gmail 的 pop3 服务器检索消息列表时,所有内容都会被拉取、已读/未读、已发送/已接收邮件:
int idx, count;
Poco::Net::Context::Ptr pContext = new
Poco::Net::Context (Poco::Net::Context::CLIENT_USE,
"", Poco::Net::Context::VERIFY_NONE, 9, true);
pContext->enableExtendedCertificateVerification(false);
Poco::Net::SocketAddress addr("pop.gmail.com", p995);
Poco::Net::SecureStreamSocket sss(addr, pContext);
POP3ClientSession session(sss);
try
{
vector<POP3ClientSession::MessageInfo>::const_iterator i;
session.login(the_user.data(), the_pass.data());
POP3ClientSession::MessageInfoVec messages;
count = session.messageCount();
session.listMessages(messages);
for(idx = 0, i = messages.begin(); i != messages.end(); ++i, idx++)
{
MailMessage message;
session.retrieveMessage((*i).id, message);
// ..
}
}
在相关帖子(如何使用 pop3 检索未读电子邮件?)中有人提到“POP3 无法跟踪邮件是已读还是未读”——这是否也适用于入站和出站消息?如果是这样,您如何区分消息类型?通过解析消息体?
我真的可以使用一种方法来跳过发送的邮件,有数千封邮件,程序需要运行一整夜才能到达入站电子邮件。