2010-12-04 28 views
1

objectif J'envoyé à l'aide CFNetwork pour se connecter à mon compte POP3 sur Yahoo.
J'ai écrit le code de connexion et d'authentification qui fonctionne parfaitement.
J'ai utilisé CFStream pour lire la réponse du serveur POP3.Comment peut-on récupérer le courrier de la boîte de réception, dossier à l'aide POP3 dans C

Ma question est, comment puis-je accéder au dossier spécifique comme boîte de réception, dossier envoyé ou supprimer dossier de mon compte Yahoo en utilisant la commande POP3.
Je dois lire les mails du dossier et montrer la liste dans le dossier spécifique à l'IPhone local.

veuillez m'aider à résoudre le problème.

Merci d'avance.

+1

Je travaille également sur ce genre de projet. Vous avez besoin de votre aide pour cela. Pourriez-vous me fournir un exemple de code à travers lequel je peux récupérer des mails depuis n'importe quel compte mail pop3/smtp? comme gmail, yahoomail etc. Merci –

+1

le partage du code source n'est pas possible grâce à ce média. Vous pouvez utiliser la fonction CFStreamCreatePairWithSocketToHost pour vous connecter au serveur, puis ouvrir le flux de lecture et d'écriture et lire la réponse dans le flux (void): (NSStream *) stream handleEvent: (NSStreamEvent) méthode eventCode. Plus tard, vous devez envoyer toutes les demandes une par une au serveur et lire la réponse en conséquence. – Naved

Répondre

2

Le protocole POP3 est documenté dans RFC 1939 - Post Office Protocol. Il ne supporte pas le concept de dossiers.

En fait, ils mentionnent à l'article 8:

Bien sûr, les autres capacités de IMAP, tels que l'interrogation d'une connexion existante pour les nouveaux arrivés messages et prenant en charge plusieurs dossiers sur le serveur, ne sont pas présents dans POP3.

D'autre part, IMAP fait, et est probablement ce que vous cherchez. Il est bien documenté dans http://www.faqs.org/rfcs/rfc3501.html La commande dans IMAP pour choisir un dossier s'appelle 'SELECT'. Le protocole ressemble à ceci:

  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 

Si vous faites cela comme un exercice intellectuel, vous allez avoir besoin de réécrire votre code de réseau pour mettre en œuvre IMAP au lieu de POP. Toutefois, si vous faites cela dans le cadre d'un endevaur commericial, je recommande de ne pas écrire un client de messagerie à partir de zéro - c'est un problème résolu avec beaucoup de source librement disponible là-bas. Vous voudrez peut-être regarder le UW-IMAP toolkit, une bibliothèque C libre ou une bibliothèque C++ VMIME. Les deux devraient être en mesure de travailler sur la plate-forme iOS sans trop de tracas.

+0

Merci Brad pour effacer mon doute – Naved

+1

Je dois me connecter au serveur POP3 seulement et je ne peux donc pas utiliser IMAP. Donc je dois compter sur un seul dossier. – Naved