Newsgroup: it.comp.lang.visual-basic
Titolo: sapere se ho posta nuova POP3

ciao.
da prog vorrei "solamente" sapere se ho posta nuova da un server pop3
(su un indirizzo che non è 110: è google mail).
non volevo usare mapi perchè "disturba" l'utente dicendo che un
programma sta cercando di aprire la posta...
potrei usare il protocollo pop (che non conosco) e connettermi con
winsocket? o altro?
l'importante è che l'utente non debba ogni volta autorizzare, il prog
deve fare da solo, ed avvisare se trova posta.
Grazie

 deve fare da solo, ed avvisare se trova posta.
Non so se ti può servire, ma per firefox esiste un'estensione "GMail
Notifier", non so se ne esistono i sorgenti in qualche linguaggio
però...
Comunque esiste 
pop.gmail.com
, solo che ci sono i parametri di
autentificazione e connessione protetta, inoltre deve essere abilitato
sull'account la ricezione della posta anche su pop.
-- 
Freccia@Bulldozer63 :D

 wrote in message
news:1126089135.9...@g49g2000cwa.googlegroups.com

Con Winsock puoi accedere al Server tramite la porta 110 non
credo sia possibile usare un'altra porta, ma puoi provare, è
impostabile, infatti l'OCX per connettersi necessita
di :
RemoteHost
RemotePort(110 teoricamente)
Il protocollo POP per sapere se ci sono Mail è decisamente
semplice, si tratta di inviare la richiesta in quest'ordine:
USER   Passi il nome dell'utente
PASS   La sua Password
STAT   Chiedi info sul numero di Mail e TotalSize
LIST   Chiedi Info di dettaglio per la lista delle mail
RETR X Chiedi di scaricare la mail n°X dove X<=al restituito da List
Ovviamente ogni volta che invii un comando devi attendere la risposta
su DataArrival.
Nel Web trovi Trilioni di esempi.
Ciao
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

dovrebbe essere possibile usare qualsiasi porta senza problemi.
da "LIST" sai come distinguere le mail NON LETTE dalle altre?
io dovrei avvisare solo se ci sono nuove mail... forse posso giocare
sulla data...
provo.
grazie.

 wrote in message
news:1126104385....@o13g2000cwo.googlegroups.com

Si credo sia l'unica, in quanto se non scarichi le Mail
qualdo le leggi e le Cancelli con DELE ogni volta che
reinterroghi il server ti restituisce tutto l'elenco.
Da quanto ne sò non credo ci sia il metodo per marcare lato
server le mail lette, ma lo puoi fare tu in locale.
Quando ho realizzato un MailReceiver ho fatto così, scarico
le mail e contemporaneamente le cancello, quindi gestisco
quelle lette con un Flag nel Database in cui salvo la Mail
con annesse proprietà di utilizzo.


PROBLEMINO:
se faccio STAT mi restituisce solo il nmero di mail e la dim totale, se
faccio LIST ottengo una roba così:
1 4180
2 1232
3 3976
4 40609
5 2043
.
non mi basta :-( non so niente della mail, dovrei sapere se è nuova o
no...
se però la "prendo" (RETR), dal server viene marcata come già letta,
e poi potrebbe essere grande...
idee?

 wrote in message
news:1126105565....@g44g2000cwa.googlegroups.com

Sei sicuro che venga marcata come letta...?
Dopo che hai fatto il RETR riprova a fare il LIST
e riottieni lo stesso elenco di prima.
La data è inserita nel messaggio, quindi per ricavarla
occorre che tu lo decodifichi e la estrai.
La trovi nella parte dopo:
DATE:Tuadata
SUBJECT:Oggetto
ecc....!
Non credo tu abbia alternative, ma probabile mi stia
sbagliando, alchè sarei contento di imparare una news.


kitesurfz ha scritto:

Puoi creare un elenco che contiene gli ID delle mail gia' lette, poi col 
comando TOP (non ricordo la sintassi), a ogni collegamento leggi un 
pezzo abbastanza grande da vedere l'ID di ogni mail. Se l'ID non e' 
nella lista aumenta il contatore di mail nuove e aggiungilo.

mi basterebbe leggere LA PRIMA: è l'ultima arrivata, e da lì vedo se
è già letta "prima"
il problema è che devo SCARICARLA (potrebbe essere grandissima, e
inoltre scaricandola viene marcata come letta (almeno con "libero" è
successo così)

... non c'è uno schifo di comando POP3 che mi restituisca solamente
titolo, mittente, data, e magari se già letta???
... o un activex free precotto che lo faccia...

kitesurfz ha scritto:

Hai provato il comando TOP del server POP? Serve a leggere le prime n 
righe del messaggio, qualunque sia la dimensione. Non so per gmail, ma 
per katamail funziona perfettamente.

BEEEELLLLOOOO!
eccolo, è lui! E' LUI !!
sai la sintassi? come si usa?
NON SO, top qualemessaggio, quanterighe???

eccoloqua, da google
TOP SP <message number> SP <nn> CRLF
GRAZIE, GRAZIE, GRA '
:-)


Quindi ricapitolando come è tutta l'istruzione?
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:  
www.donkarl.com/it

 Quindi ricapitolando come è tutta l'istruzione?
Ciao Massimiliano è questo:
TOP SP <message number> SP <nn> CRLF
Dove Message Number è il progressivo numerale della mail
nel server mentre nn è il MaxNum che ricavi da STAT.
Questo restituisce l'Header del quale devi fare il parsing
e ricavare DATE: SUBJECT SENDER ecc.. come dissi già dai 
primi messaggi, solo non ricordavo l'uso di TOP.
Saluti.


chiaramente SP significa "spazio"... :-P

 chiaramente SP significa "spazio"... :-P
;-)
Fondamentale puntualizzazione, mi era sfuggito.


 winsocket? o altro?
Su Gmail ora puoi anche accedere via POP3/SMTP, le info sono qui:
http://gmail.google.com/support/bin/answer.py?answer=13276
Cerca POP3 sul Sito Comune: 
http://www.it-lang-vb.net/
.
Quello che non sapevo era come emulare una sessione SSL, con VB;
però ho trovato questo:
http://www.vbrad.com/pf.asp?p=source/src_winsock_less.htm
con tre minuti di Google, e con altri cinque sono arrivato qui:
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=43694&lngWId=1
Bye, G.

kitesurfz ha scritto:

Alt! Fermi tutti. Non combinate casini che poi vene pentirete AMARAMENTE.
Il comando top non gestisce la differenza tra due email con lo stesso 
oggetto e diverso mittente.
Il comando da utilizzare è UIDL. Non è contemplato nel protocollo POP3 
standard, ma praticamente il 100% dei server lo supporta.
Non è un comando lato server ma lato client. Vi restituisce 
l'identificatore unico dell'email. Due email completamente uguali, 
inviate dallo stesso mittente, ecc... magari con mezzo secondo di 
differenza tra una e l'altra, restituiscono un diverso valore UIDL.
Ripeto: NON USATE IL COMANDO "TOP"
bye

 bye
Ciao Nicola.
Ottimo suggerimento, non lo conoscevo, 
in ogni caso serve per distinguere
le mail ma non per discriminare se è già stata letta, come
credo questa discriminazione deve essere fatta dal Client
e non dal Server o sbaglio...?


 standard, ma praticamente il 100% dei server lo supporta.
Se fosse per quello... secondo la RFC 1939 anche TOP, USER e PASS
sono "optional commands", ma non credo esista un server che non li
supporti :-)
Bye, G.

Paperino ha scritto:

In realtà User e Pass sono comandi deprecabili in quanto spediscono *in 
chiaro* le informazioni.
Se non ricordo male, il comando da utilizzare per autenticarsi in modo 
sicuro è APOP, ma praticamente nessu server lo supporta (Sinapsi però si 
^_^ )
bye

 e non dal Server o sbaglio...?
Non sbagli, bisogna tenere traccia lato client.
bye

 sicuro è APOP
Che a sua volta è optional. Ora, "la domanda sorge spontanea", mi chiedo...
Se un server non supportasse nessuno dei due metodi, sarebbe ancora
un server POP3 RFC compliant ? :-)
Bye, G.

 un server POP3 RFC compliant ? :-)
Sono tutti gli altri che non sono RFC compliant! :-P

 oggetto e diverso mittente.
Forse mi sbaglio io, ma TOP restituisce le prime n linee del messaggio x 
(dove n e x sono numeri, non gli oggetti). Da quello che viene 
restituito ti puoi estrarre a mano l'id, che e' comunque una parte del 
messaggio e sempre diverso. Ho appena provato a mandarmi due messaggi 
uguali con oggetto uguale su katamail e poi da telnet:
top 1 10
top 2 10
In mezzo a tutte le altre cose c'erano i due campi 'Message-ID: 
<.....>', ovviamente con numeri diversi.
La tua mi sembra comunque la soluzione piu' adatta. Solo non capisco 
perche' uidl mi restituisce un id diverso.