2010-12-04 58 views
1

我使用CFNetwork的連接到我的POP3帳戶雅虎
我寫了完美運行的連接和身份驗證代碼。
我已經使用CFStream來讀取POP3服務器響應。我們如何從收件箱中收取郵件,發送使用POP3文件夾中的目標C

我的問題是,我怎麼能訪問諸如收件箱發送文件夾中的特定文件夾刪除使用POP3命令我的雅虎帳戶的文件夾中。
我必須從文件夾中讀取郵件,並在本地IPhone的特定文件夾中顯示列表。

請幫我解決問題。

在此先感謝。

+1

我也在這種項目上工作需要你的幫助。你可以給我一個示例代碼,通過它我可以從任何pop3/smtp郵件帳戶獲取郵件嗎?像Gmail,雅虎郵箱等。謝謝 – 2011-01-29 15:35:18

+1

分享源代碼是不可能通過此媒體。您可以使用CFStreamCreatePairWithSocketToHost函數連接到服務器,然後打開讀寫流並讀取(void)流中的響應:(NSStream *)流handleEvent:(NSStreamEvent)eventCode方法。稍後,您必須將所有請求逐一發送到服務器,並相應地讀取它的響應。 – Naved 2011-02-01 04:58:53

回答

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 C++庫。兩者都應該能夠在沒有太多麻煩的情況下在iOS平臺上工作。

相關問題