2012-01-27 6 views
9

Mi piacerebbe scrivere un'applicazione che monitora una casella di posta (idealmente una casella di posta Gmail). In breve, la mia domanda è: come ascolto le e-mail in arrivo? Potrei sempre continuare a tirare email, ma temo che questo non si riduca molto bene.Come ricevere le notifiche push dal mio account Gmail?

Come fa iOS con Gmail? Penso che stiano usando il protocollo di Exchange, ma non ne sono sicuro. Qualcuno ha un'idea su come farlo? C'è una soluzione che già fa qualcosa di simile? Ho solo bisogno di un gancio.

Grazie!

+0

Sapevi che Google ha un'app per questo? http://toolbar.google.com/gmail-helper/notifier_windows.html. ** Modifica: ** Eh, non importa, esegue il polling ogni due minuti per gli aggiornamenti. –

+0

@ Martin Hai trovato una risposta? Le due risposte sottostanti che suggeriscono IMAP mi sembrano ragionevoli. –

risposta

6

L'API più universale per il monitoraggio di una posta in arrivo di Gmail o Google Apps è il protocollo IMAP. Ci sono alcune informazioni su questo qui: Gmail IMAP OAuth for desktop clients

Per le caselle di posta di Google Apps (consumatore non generale account Gmail), è anche possibile utilizzare il feed casella di posta Gmail, che fornisce un feed XML AtomPub di messaggi non letti in una casella di posta di Google Apps: http://code.google.com/apis/gmail/docs/inbox_feed.html

4

L'"API" di GMail è IMAP.

In IMAP, la funzione IDLE viene utilizzata per comunicare al server di notificare al client le modifiche apportate alla cassetta postale.

IDLE è definito in RFC 2177 IDLE è una funzione IMAP opzionale, pertanto potrebbe non funzionare su altri server IMAP.

2

Se si vuole solo parlare con Gmail, hanno un API REST si può usare e supporta le notifiche push (ad es webhooks): https://developers.google.com/gmail/api/guides/push

Ma ancora una volta questa è un'API specifica per Gmail, che può andare bene voi requisiti o no. Se stai bene solo per essere specifico di Gmail, probabilmente è più facile e meglio lavorare con un ambiente di tipo web/mobile piuttosto che con IMAP.