Home > Altro > Leggere la posta IMAP mediante Telnet – 2

Leggere la posta IMAP mediante Telnet – 2

Nell’articolo precedente abbiamo visto come accedere via IMAP ad una caselal di posta mediante il comando telnet. Oltre ad istruirci sul protocollo IMAP e la sua RFC ci permette di fatto di poter implementare un client IMAP con poche semplici nozioni di programmazione nel linguaggio che più preferiamo. Il presente articolo vuole completare la lista dei comandi che IMAP prevede una volta effettuato il login pertanto invito a leggerlo solo dopo aver letto e compreso l’aricolo di cui sopra.

Proviamo ora a conoscere il comando:

COMANDO STORE:

Permette di modificare il flag IMAP su un messaggio. I flag sono replicato a, cancellato, visto, ecc… e per poterli modificare si esegua:

Per aggiungere:                       STORE messaggio +flag [lista_flag]

Per eliminare:                          STORE messaggio -flag [lista_flag]

Per ripristinare tutti i flag:       STORE messaggio flags [flag list]

Considerando che alciuni dei flags sono: \Answered \Flagged \Draft \Deleted \Seen un esempio pratico puo’ essereil seguente:

. store 3:4 flags \Deleted
* 1 FETCH (FLAGS (\Recent \Deleted))
* 2 FETCH (FLAGS (\Recent \Deleted))
. OK Completed

Oppure impostare tutti i messaggi come non di spam (NonJunk)

. store 1:* +flags NonJunk
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen hasatt NonJunk Junk label1)
* OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen hasatt NonJunk Junk $label1 \*)]
* 1 FETCH (FLAGS ($label1 NonJunk))
* 2 FETCH (FLAGS ($label1 NonJunk))
. OK Completed

COMANDO CLOSE e EXPUNGE:

Entrambi i comandi permetto l’eliminazione dei messaggi contrassegnati come \Deleted e quindi da cancellare ma mentre EXPUNGE li elimina e non fa nient’altro, il comando CLOSE elimina  i messaggi e deseleziona la cartella in uso.

COMANDO COPY:

Il comando copia un messaggio da una cartella ad un’altra. L’operazione di copia presuppone la rimozione automatica del flag \Recent. Di seguito un esempio di utilizzo:

. copy 1:2 inbox.test2
. OK [COPYUID 1138801117 1:2 1:2] Completed
. select inbox.test2
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen hasatt)
* OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen hasatt \*)]
* 2 EXISTS
* 2 RECENT
* OK [UIDVALIDITY 1138801117]
* OK [UIDNEXT 3]
. OK [READ-WRITE] Completed

COMANDO IDLE:

Permette di tenere sotto controllo costantemente la nostra casella di posta ponendosi in uno stato di idle fino all’arrivo di un nuovo messaggio di posta.

. idle
+ idling

All’arrivo di un messaggio IMAP fornira’ un messaggio dl tipo:

* OK Still here

Se vogliamo interrompere manualmente lo stato di idling dobbiamo lanciare il comando done:

done
. OK Completed

Attenzione perche’ “done”  e’ l’unico comando che non va eseguito con il tag iniziale

COMANDO SUBSCRIBE, UNSUBSCRIBE e LSUB,:

Subscribe permette di sottoscrivere il client ad una determinata folder IMAP (cartella dell’account di posta), unsubscribe di eliminare la sottoscrizione. LSUB invece permette di fare il listing delle folder IMAP su cui si e’ effettuato il subscribe:

. lsub “” “*”
* LSUB (\HasChildren) “.” “INBOX”
* LSUB () “.” “INBOX.Drafts”
* LSUB () “.” “INBOX.Sent Items”
* LSUB () “.” “INBOX.Trash”
* LSUB () “.” “INBOX.test2″
. OK Completed (0.001 secs 6 calls)

COMANDO CAPABILITY, GETQUOTAROOT e GETACL:

I comandi sopraindicati permettono di avere una serie di informazioni sul server di posta su cui viene effettuata la connessione.

CAPABILITY permette di avere la lista delle compatibilita’ del server:

. capability
* CAPABILITY IMAP4rev1 SASL-IR SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN NAMESPACE LOGIN-REFERRALS
. OK Capability completed.

GETQUOTAROOT la quantita’ di spazio occupata dalla casella e ma non e’ supportato da molti server di posta.

GETACL permette di visualizzare una seri di flag della cartella su cui si richiama il comando. I flag possono essere:

l – lookup_flag:  la mailbox è disponibile per i comandi LIST/LSUB
r – read_flag: sono abilitati i comandi CHECK, FETCH, PARTIAL SEARCH, COPY
s – seen_flag: mantiene le informazioni seen/unseen su sessioni differenti
w – write_flag: sono abilitato il comando STORE e altri flag come SEEN and DELETED
i – insert_flag: abilita i comandi APPEND, COPY alla mailbox

p – post_flag:manda un email alla

c – create_flag: CREATE una nuova sub-mailboxes
d – delete_flag: STORE DELETED flag e abilitato EXPUNGE
a – administer_flag: e’ abilitato SETACL

  1. Nessun commento ancora...
  1. Nessun trackback ancora...