Newsgroup: it.comp.lang.visual-basic
Titolo: LEGGERE EMAIL E COMPORRE NUMERO TELEFONICO

Buongiorno a tutti del NG,
ho l'esigenza di dover creare un programmino che mi consenta di compiere 
le seguenti azioni AUTOMATICHE :
- controllare ogni minuto una casella di posta elettronica (es. gmail o altro)
- se vi è un messaggio devo controllare che nell'oggetto del messaggio vi 
sia una certa scritta (es. ALLARME)
- se il messaggio non contiene la scritta ALLARME, cancellare il messaggio
- se il messaggio contiene la scritta ALLARME, verificare una tabella delle 
fascie orarie che indica se eseguire una certa azione o meno.
- se dopo la verifica delle fasce orarie risulta che il messaggio deve generare 
un evento, comporre una serie di numeri telefonici (uno dopo l'altro) (semplici 
chiamate telefoniche che servono di avviso a chi le riceverà).
Ho visto in internet che con VB si possono fare tante cose.
Ovviamente io vorrei allestire un computer dedicato a questo scopo.
Il computer avrà :
- un modem analogico connesso.
- un gruppo di continuità
- un scheda di rete con connessione ethernet ad un router ADSL
C'è qualcuno di voi che può darmi una dritta per come realizzare il programma?
Io sono pratico di Access e un po' con la programmazione VBA, vorrei non 
usare librerie proprietarie
a pagamento, ma eseguire il tutto in modo completamente free.
Attendo le vostre idee.
Grazie in anticipo.
Marco.
Di seguito riporto alcuni siti dai quali ho preso spunto:
http://www.vbforums.com/showthread.php?t=374892
http://www.example-code.com/vb/read-pop3-unread-email.asp
http://www.ehow.com/how_6620800_read-email-vb.html
http://www.vb-helper.com/howto_dialer.html
http://www.ozgrid.com/forum/showthread.php?t=16781&page=1

 a pagamento, ma eseguire il tutto in modo completamente free.
Con queste conoscenze la vedo molto dura.
Solo per leggere un'email devi saper fare le seguenti cose:
-Connessione POP3 (gestione dei socket, protocollo POP3)
-Parsing di un'email (conoscenza del formato Plain\Text o HTML delle
email, utilizzo delle Regular Expression per cercare le stringhe che ti
servono)
Per la composizione di un numero telefonico la vedo ancora più dura,
perchè dovresti utilizzare MsComm e trovare il modo di riprodurre un
file sonoro.
Hai intenzione di lavorare in VB6 o .NET?
Nicola

 Nicola
Ciao e grazie per aver risposto,
Io pensavo di poter fare il tutto in vba da access o excel, ma non è
un problema tentare
usando visual basic express 2010 (che ho appena installato).
Ho provato dei pezzi trovati in rete, e posso dirti che la parte che
compone il numero telefonico già funziona.
Non avevo pensato al discorso di far riprodurre un file audio, anche
perchè davo per scontato che non avrei risposto
alla chiamata.
La chiamata serviva solo perchè potessi essere avvisato di un allarme.
Ma ora che ci penso mi tornerebbe comodo la funzione audio in quanto
potrei far riprodurre un file audio piuttosto che un'altro
a seconda dell'oggetto dell'email.
Io la buona volontà ce la metto, se qualcuno mi da alcune dritte e
qualche pezzo di codice da poi modificare per adattarlo alle mie
esigenze,
io potrei anche arrivarci.
Intanto ti ringrazio .

Addendum :
Ho maturato l'idea originale!
Il programma che voglio fare deve sostanzialmente eseguire le seguenti
azioni :
- controllare una casella email e cancellare tutti i messaggi che non
abbiano nel campo OGGETTO la parola "ALLARME"
- se è presente un messaggio (NON LETTO) che ha la parola "ALLARME"
nell'OGGETTO allora deve eseguire la PROCEDURA chiamata CONTROLLO
MESSAGGI:
- per tutte le operazioni INTERESSANTI devono essere registrati i
movimenti in un file di registro (LOG) (anche semplice testo)
Le procedure dovrebbero essere queste:
PROCEDURA LETTURA EMAIL
    - cancella tutti i messaggi che NON HANNO la parola "ALLARME" nel
campo OGGETTO
   (volendo si può fare con il filtro della casella email, ma per non
dipendere da nessuno, preferisco farlo da me!)
   - se sono presenti messaggi con la parola "ALLARME" nel campo
OGGETTO allora richiama la PROCEDURA CONTROLLO MESSAGGI
PROCEDURA CONTROLLO MESSAGGI
      - segnare come letto il messaggio
      - legge l'oggetto del messaggio  (memorizza in una variabile
GLOBALE)
      - controllare data e ora del messaggio  (memorizza in una
variabile GLOBALE)
      - richiama la procedura CONTROLLO FASCIA ORARIA
      - scrivi in un file o database di access (in modalità append) la
seguente dicitura :  Lettura email del %data e ora% con OGGETTO :
%oggetto dell'email%
PROCEDURA CONTROLLO FASCIA ORARIA
- se l'ora del messaggio NON rientra nel PERIODO DI GRAZIA (es. dalle
13.00 alle 15.00;  dalle 18.00 alle 19.00) allora richiama la
PROCEDURA COMMUNICAZIONE altrimenti NON FARE NIENTE
- scrivi in un file o database di access (in modalità append) la
seguente dicitura : Controllo fascia oraria completato : %esito%  (es.
GRACE PERIOD oppure ALLARME)
PROCEDURA COMMUNICAZIONE
- tramite modem gsm collegato al PC (es. cellulare connesso via usb/
blutooth) GENERA L'INVIO DI SMS a UNO O PIU NUMERI DI CELLULARE
 (tramite i comandi AT) utilizzando l'OGGETTO DEL MESSAGGIO EMAIL
(variabile globale) come TESTO DEL SMS
- GENERA UNO O PIU SQUILLI verso gli stessi NUMERI DI CELLULARE a cui
è stato inviato l'sms.
- scrivi in un file o database di access (in modalità append) la
seguente dicitura : Invio sms allarme %data e ora attuali% ai numeri
%numeri telefonici" : oggetto sms : %oggetto email%
- scrivi in un file o database di access (in modalità append) la
seguente dicitura : Composizione squillo il : %data e ora attuale%
esito chiamata : %esito%  (libero, occupato, non raggiungibile,
etc...)
Spero di essere stato chiaro e aver dato l'idea di quello che voglio
fare.
.... e speriamo qualcuno possa aiutarmi :-)
Preferirei fare il tutto usando access di cui sono piu pratico, ma se
devo tentare con VB non è un problema.
GRAZIE IN ANTICIPO.
PS: io intanto mi metto al lavoro.

 
Secondo me dovresti rientrare un po' più in quello che sai fare. Sennò rischi
di fare un copia&incolla generale con la filosofia del "basta che compila e
funziona" senza capire cosa stai realmente facendo.
Prima ti studi bene una tecnologia che ti permette di farlo e solo DOPO potrai
pensare a fare programmi più complessi.