bash + telnet per leggere la mail di slacky
Inviato: mar 26 giu 2007, 21:00
Ciao a tutti,
IMPORTANTE PREMESSA:
Non voglio reinventare la ruota, so che ci sono almeno altri 1000 modi per fare più agevolmente quello che io voglio fare con lo script che andrò a creare, il mio interesse però è imparare, e creare qualcosa di utile ai miei scopi con i mezzi che Slackware mi mette a disposizione mi sembra un buon modo... A qualcuno potrà sembrare una perdita di tempo, ma per me è un'occasione per migliorare...
/IMPORTANTE PREMESSA
come promesso apro il thread in cui proverò a riportare la mia frustrazione durante la creazione di uno script che automaticamente si preoccupi di andare sul server mail di slacky e controllare per me se c'è posta in arrivo non letta...
Ho googlato un po sull'argomento e voglio che sia chiaro che quel poco che sono riuscito a tirare fuori non è per nulla farina del mio sacco...
Cominciamo, per iniziare ho provato in maniera interattiva a collegarmi al server di posta e tutto è andato bene...
Il server mi ha risposto così:
e poi mi ha restituito il prompt per poter inviare un nuovo comando, e io ho inviato:
Il server ha risposto:
poi ho inviato:
e il server ha risposto di nuovo:
da qui essendo io connesso e autenticato al server posso dare il comando LIST per vedere quanti messaggi ho e poi il comando RETR n (dove n è il numero del messaggio che voglio leggere) per leggere quel messaggio, poi dando il comando QUIT esco tranquillamente...
Fin quì tutto ok, ma siamo in modalità interattiva, quello che voglio io è automatizzare il processo, so che basta dare una serie di echo per accedere, ma lo script che avevo in mente dovrebbe agire di conseguenza alle risposte del server, può sempre capitare che il server per qualche motivo mi risponda con un -ERR invece che con +OK, e vorrei evitare di lasciare il processo in sospeso all'infinito se ciò dovesse accadere... inoltre vorrei capire se posso redirigere l'output di telnet in una variabile bash per poterci operare come voglio io (ad esempio con wc per sapere quanta posta c'è...)
Qualcuno di voi ha qualche suggerimento in merito da darmi??
Grazie mille a tutti
IMPORTANTE PREMESSA:
Non voglio reinventare la ruota, so che ci sono almeno altri 1000 modi per fare più agevolmente quello che io voglio fare con lo script che andrò a creare, il mio interesse però è imparare, e creare qualcosa di utile ai miei scopi con i mezzi che Slackware mi mette a disposizione mi sembra un buon modo... A qualcuno potrà sembrare una perdita di tempo, ma per me è un'occasione per migliorare...
/IMPORTANTE PREMESSA
come promesso apro il thread in cui proverò a riportare la mia frustrazione durante la creazione di uno script che automaticamente si preoccupi di andare sul server mail di slacky e controllare per me se c'è posta in arrivo non letta...
Ho googlato un po sull'argomento e voglio che sia chiaro che quel poco che sono riuscito a tirare fuori non è per nulla farina del mio sacco...
Cominciamo, per iniziare ho provato in maniera interattiva a collegarmi al server di posta e tutto è andato bene...
Codice: Seleziona tutto
telnet pop3.slacky.it 110Codice: Seleziona tutto
Trying 62.149.128.155...
Connected to pop3.slacky.it.
Escape character is '^]'.
+OK <7661.1182882695@popd7.fe.aruba.it>
Codice: Seleziona tutto
USER miouserCodice: Seleziona tutto
+OKCodice: Seleziona tutto
PASS miapasswordCodice: Seleziona tutto
+OKFin quì tutto ok, ma siamo in modalità interattiva, quello che voglio io è automatizzare il processo, so che basta dare una serie di echo per accedere, ma lo script che avevo in mente dovrebbe agire di conseguenza alle risposte del server, può sempre capitare che il server per qualche motivo mi risponda con un -ERR invece che con +OK, e vorrei evitare di lasciare il processo in sospeso all'infinito se ciò dovesse accadere... inoltre vorrei capire se posso redirigere l'output di telnet in una variabile bash per poterci operare come voglio io (ad esempio con wc per sapere quanta posta c'è...)
Qualcuno di voi ha qualche suggerimento in merito da darmi??
Grazie mille a tutti