Newsgroup: it.comp.os.linux.sys
Titolo: Testare accessibilita' SMTP in automatico

Ordunque, mi si chiede di verificare in automatico (aka: non posso
usare telnet) se un server di posta accetta la posta... credo che
sia sufficiente il verificare che qualche cosa risponda sulla porta
25, mi sono venute varie idee, la prima e' di usare nmap, solo che
mi pare un po' come ammazzare una pulce con un'ICBM....
Altre idee?
Davide
-- 
| Cauliflower is nothing but Cabbage with a College Education.   -- Mark
| Twain 
| 
| 

 Davide
io mi farei uno scriptino da lanciare da crontab
che prova ad effettuare una connessione smtp 
e magari che dialoghi anche un poco con il server,
 e se qualche cosa non va come dovrebbe ti avverta
in qualche modo.
ciao, 
fabri

 writes:
DB> Ordunque, mi si chiede di verificare in automatico (aka: non posso
DB> usare telnet) se un server di posta accetta la posta... 
Perl is your friend:
  #!/usr/local/bin/perl -w
  use Net::SMTP;
  $smtp = Net::SMTP->new($ARGV[0]) ? exit 0 : exit 1;
 
Se sull'host passato  come parametro c'e` un mail  server in ascolto, il
programmino esce con codice 0, altrimenti 1.
"perldoc Net::SMTP" per altre funzioni utili.
Saluti,
Luca Polo.
-- 
Luca...@gest.unipd.it
 --- 
http://www.gest.unipd.it/~jake
----------------------------------------------------------
One Ping to rule them all. One Ping to find them.
One Ping to bring down them all.
And in the darkness crash them.         [The Lord of the Pings]

 Altre idee?
hping, netcat...
-- 
Vuoi fare colpo su di lei con me?
Fai colpo su di lei con me! Fai colpo su di lei con me!
[Dr. Gonzo : Paura e delirio a Las Vegas]

 usare telnet)
Perchè?
Log=/tmp/xxx.tmp
telnet smtpserver 25 1>/dev/null 2>/tmp/xxx.tmp << __END__
quit
__END__
exit `grep -c "Connection closed by foreign host." $Log`
N.B. exit code al contrario :)
-- 
Cris Carampa (
spamto:cri...@operamail.com
)
Quando usi un computer hai a disposizione una tastiera completa. Per
cortesia, evita di scrivere come su un cellulare. Verra` apprezzato.

 exit `grep -c "Connection closed by foreign host." $Log`
Versione più elegante:
telnet -e! 1>/dev/null 2>/dev/null << __END__
open smtp 25
!
quit
__END__
exit "$?"
Anche qui codici di uscita al contrario, non capisco perchè.


 Perch??
Perche' se il coglione di provider filtra la porta 25
telnet non ritorna mai.
Davide
-- 
| Experience is what you get when you were expecting something else. 
| 
| 
| 

 Perl is your friend:
Ecco, questo gia' mi piace di piu'. Salvo il fatto che se usi -w
si lamenta del fatto che main::smtp e' usato una volta sola...
Davide
-- 
| Human beings were created by water to transport it uphill. 

 Cosa intendi per ``accetta'' ?
Il coglione di provider filtra la porta 25, ergo il server e'
irraggiungibile, adesso il tipo sta' cercando di farsi sbloccare
la porta, e quando e' sbloccata dobbiamo aggiustare il DNS.
Davide
-- 
| No matter how subtle the wizard, a knife in the shoulder blades will
| seriously cramp his style. 
| 
| 

> Perch??
DB> Perche' se il coglione di provider filtra la porta 25
DB> telnet non ritorna mai.
Perl is even more your friend :-) :-):
  $smtp = Net::SMTP->new($ARGV[0], Timeout => 5) ? exit 0 : exit 1;
Se entro 5 secondi (o quel che vuoi) non ti risponde, esce con 1.


 writes:
DB> Ecco, questo gia' mi piace di piu'. Salvo il fatto che se usi -w
DB> si lamenta del fatto che main::smtp e' usato una volta sola...
Strano, a me non dice nulla (perl 5.8.0)...
Comunque su un programma di tale complessita` :-| il -w e` inutile.


 Comunque su un programma di tale complessita` :-| il -w e` inutile.
Concordo.
Davide
-- 
| Whistler's Law:  You never know who is right, but you always know who 
| is in charge. 
| 
|