2010-06-08 11 views
6

Ho utilizzato un codice open source da CodeProject per leggere le e-mail dal server di posta in arrivo (server POP). Il codice può essere trovato al seguente indirizzo: http://www.codeproject.com/KB/IP/Pop3MimeClient.aspxLeggere le e-mail dal server di posta in arrivo (POP)

Finora funziona correttamente; Posso leggere le email.

Il mio obiettivo di utilizzare questo codice era di recuperare e-mail da un server POP ed elaborarle.

Il mio problema è: Se utilizzo il pop server di Gmail "pop.gmail.com" ed eseguo l'appplicazione, ricevo solo le e-mail che non ho recuperato dall'ultima volta che ho eseguito l'applicazione. Ma se utilizzo il server POP del mio cliente ogni volta che eseguo l'applicazione, ricevo tutte le e-mail nel server pop.

Ad esempio:
Se uso server POP Gmail: pop.gmail.com
Ho tre messaggi di posta elettronica nel server pop. Non ho eseguito l'applicazione. Sto eseguendo l'applicazione per la prima volta. L'applicazione legge l'e-mail; questa volta riceverò tutte e tre le email. Eseguo l'applicazione una seconda volta; questa volta la mia applicazione non leggerà nessuna email perché ho già letto le 3 esistenti. Questo va bene; questo è quello che voglio.

Ora invio un'email a pop.gmail.com. Eseguo nuovamente l'applicazione per la terza volta; questa volta riceverò solo l'e-mail appena arrivata, ovvero la quarta. Questo è un buon comportamento; questo è quello che voglio.

Ma se io uso server POP del mio cliente:
Non importa quante volte ho eseguito l'applicazione, si legge tutti i messaggi di posta elettronica nella casella di posta elettronica.

Questo creerà un problema per me, perché sto pensando di creare un servizio di finestra che leggerà le email dal server pop e le elaborerà. Questo servizio verrà eseguito continuamente. Elaborerò le e-mail nel server POP, quindi dormirò per un minuto e diciamo di nuovo. Se l'applicazione scaricata da CodeProject legge tutte le e-mail continuamente, la casella postale dei miei clienti può avere migliaia di e-mail in questa casella di posta, quindi non sarebbe fattibile per me.

Ci sono alcune impostazioni che devono essere eseguite sul server POP del mio cliente che consentiranno alla mia applicazione di recuperare solo le e-mail che non ho letto dall'ultima volta che ho eseguito il servizio?

risposta

3

Non utilizzare l'implementazione di POP o IMAP di Gmail come canonica; entrambi questi protocolli si comportano in modo diverso con gli account Gmail che con qualsiasi altro server.

Per rispondere alla tua domanda, ci sono due approcci che si può prendere:

  1. tenere traccia del messaggio ID del dei messaggi che avete visto e ignorarli sulle connessioni successive (questo lascerà i messaggi sul server per il download di un altro client).
  2. Emettere il comando DELE dopo aver scaricato un messaggio, che lo rimuoverà dal server.
+0

+1 buona risposta. – adatapost

Problemi correlati