Querying SSL/TLS capabilities of SMTP servers

Thomas Shaddack shaddack at ns.arachne.cz
Thu Jul 8 16:46:26 PDT 2004


It fails on hotmail.com; my script has problems there as well (and with 
couple others, the cure seems to be adding delays between the lines sent 
to the server; it makes the program slow, but more reliable).

In my case I added "-i 3" to the netcat options. Isn't a panacea, but 
helped in most cases. In the rest, I have to resort to telnet.

Thanks a lot. Seems I have to learn perl. Looks powerful.


On Thu, 8 Jul 2004, Justin wrote:

> 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;
>     }
> }





More information about the cypherpunks-legacy mailing list