On 2004-07-08T17:50:57+0200, Thomas Shaddack wrote:
I cobbled up together a small bash shell script that does this. It lists the MX records for a domain, and then tries to connect to each of them, issue an EHLO command, disconnect, then list the output of the server, ...
Or, in perl... though I wonder if there's a way to get capabilities with Net::SMTP. Might make this cleaner. #!/usr/bin/perl use IO::Socket; use Net::DNS; for ($i = 0; $i <= $#ARGV; $i++) { my @mx = mx($ARGV[$i]); foreach $record (@mx) { my $hastls = 0; my $mhost = IO::Socket::INET->new ( Proto => "tcp", PeerAddr => $record->exchange, PeerPort => "25", Timeout => "10" ); print $mhost "EHLO I-love-my-country.whitehouse.gov\n"; print $mhost "QUIT\n"; while (<$mhost>) { if (/STARTTLS/) { $hastls = 1; last; } } print "$ARGV[$i] " . $record->preference . " " . $record->exchange; print $hastls ? " adv-tls\n" : " no-tls\n"; close $mhost; } }