-
Notifications
You must be signed in to change notification settings - Fork 37
/
Copy pathemailtls.pl
29 lines (28 loc) · 1012 Bytes
/
emailtls.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/perl -w
use strict;
use LWP::UserAgent;
use HTTP::Request::Common;
use XML::XPath;
$domain=<STDIN>;
my $ua = LWP::UserAgent->new;
my $request = POST( 'https://www.checktls.com/TestReceiver', [
CUSTOMERCODE => '$domain',
CUSTOMERPASS => 'IllNeverTell',
EMAIL => 'test@CheckTLS.com',
LEVEL => 'XML_DETAIL',
] );
my $response = $ua->request($request);
unless( $response->is_success) {
print $response->status_line;
}
my $XML = $response->content();
my $xp = XML::XPath->new(xml => $XML);
print 'Target = ' . $xp->find('/CheckTLS/eMailAddress') . "\n";
print 'Score = ' . $xp->find('/CheckTLS/ConfidenceFactor') . "\n";
my $nodeset = $xp->findnodes('/CheckTLS/MX');
print 'MX Count = ' . $nodeset->get_nodelist() . "\n";
foreach my $mx ($nodeset->get_nodelist()) {
print 'MX = ' . $mx->find('@exchange') . "\n";
print 'MX SSL Version = ' . $mx->find('SSL/SSLVersion') . "\n";
}
print 'MX1.Cert1.Subject.commonName = ' . $xp->find('/CheckTLS/MX[1]/SSL/Certs/Cert[1]/Subject/commonName') . "\n";