Per ricevere la posta tramite Arduino, è consigliabile utilizzare il protocollo IMAP, che permette di accedere ai messaggi senza cancellarli automaticamente dal server, come invece succede con POP3.
Il metodo per collegarsi al server IMAP è lo stesso usato per inviare la posta tramite server SMTP; quello che cambia è la porta su cui ci si connette (143 per IMAP, 25 per SMTP), e ovviamente i comandi da inviare. Talvolta anche il server a cui bisogna collegarsi è diverso.
Rimandando al tutorial sull'invio di mail per lo sketch di connessione e invio comandi, elenchiamo qui solo i comandi necessari per collegarsi al server, controllare se c'e' posta e leggere un messaggio.
Nota: bisogna scrivere "." seguito da uno spazio prima di ogni comando
- Connessione al server:
telnet imap.libero.it 143
- Per fare il login:
. login nomeutente@server.it password
SendMsg(". login " + Username + " " + Password);
- Per vedere il riassunto del contenuto di INBOX:
. select inbox
SendMsg(". select inbox");
- Per leggere un dato (mittente, destinatario, oggetto e data) dall'header di un messaggio:
. fetch NUM_MEX (body[header.fields (from)])
. fetch NUM_MEX (body[header.fields (to)])
. fetch NUM_MEX (body[header.fields (subject)])
. fetch NUM_MEX (body[header.fields (date)])
SendMsg(". fetch 2 (body[header.fields (subject)])");
- per leggere il testo di un messaggio:
. fetch NUM_MEX rfc822.text
SendMsg(". fetch NUM_MEX rfc822.text");