我们如何从Inbox中获取邮件,在目标C中使用POP3发送文件夹

时间:2010-12-04 08:34:09

标签: iphone objective-c pop3

我正在使用 CFNetwork 连接到 Yahoo 上的 POP3 帐户。
我已经编写了完美运行的连接和身份验证代码 我使用 CFStream 来读取POP3服务器响应。

我的问题是,如何使用收件箱,已发送文件夹删除文件夹等特定文件夹> POP3命令。
我必须从文件夹中读取邮件并在本地IPhone的特定文件夹中显示该列表。

请帮助我解决问题。

提前致谢。

1 个答案:

答案 0 :(得分:2)

POP3协议记录在RFC 1939中 - Post Office Protocol。它不支持文件夹的概念。

事实上,他们在第8节提到:

  

当然IMAP的其他功能,例如轮询新到达的现有连接      消息和支持服务器上的多个文件夹,不是      出现在POP3中。

另一方面,IMAP确实如此,而且很可能是您正在寻找的。在http://www.faqs.org/rfcs/rfc3501.html中有详细记录IMAP中用于选择文件夹的命令称为“SELECT”。该协议如下所示:

           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平台上工作而不会有太多麻烦。