我正在使用 CFNetwork 连接到 Yahoo 上的 POP3 帐户。
我已经编写了完美运行的连接和身份验证代码
我使用 CFStream 来读取POP3服务器响应。
我的问题是,如何使用收件箱,已发送文件夹或删除文件夹等特定文件夹> POP3命令。
我必须从文件夹中读取邮件并在本地IPhone的特定文件夹中显示该列表。
请帮助我解决问题。
提前致谢。
答案 0 :(得分:2)
POP3协议记录在RFC 1939中 - Post Office Protocol。它不支持文件夹的概念。
事实上,他们在第8节提到:
另一方面,IMAP确实如此,而且很可能是您正在寻找的。在http://www.faqs.org/rfcs/rfc3501.html中有详细记录IMAP中用于选择文件夹的命令称为“SELECT”。该协议如下所示:当然IMAP的其他功能,例如轮询新到达的现有连接 消息和支持服务器上的多个文件夹,不是 出现在POP3中。
C: A142 SELECT INBOX S: * 172 EXISTS S: * 1 RECENT S: * OK [UNSEEN 12] Message 12 is first unseen S: * OK [UIDVALIDITY 3857529045] UIDs valid S: * OK [UIDNEXT 4392] Predicted next UID S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) S: * OK [PERMANENTFLAGS (\Deleted \Seen \*)] Limited S: A142 OK [READ-WRITE] SELECT completed
如果您将此作为一项智力练习,则需要重写网络代码以实现IMAP而不是POP。但是,如果您将此作为商业活动的一部分,我建议不要从头开始编写电子邮件客户端 - 这是一个解决的问题,有很多可自由使用的源代码。您可能希望查看UW-IMAP toolkit,免费的C库或VMIME A C ++库。两者都应该能够在iOS平台上工作而不会有太多麻烦。