X-Git-Url: https://code.th-h.de/?p=mail%2Fcheckmail.git;a=blobdiff_plain;f=checkmail.pl;h=27cd5c7596143902a5d059a9147b49d1fb13b3c3;hp=4a0a1ad0330fc690681ae19a00a2d5f4011e97f1;hb=refs%2Fheads%2Fmaster;hpb=2378aae83e0c71a824fd0e73ba5ecad6ceab3123 diff --git a/checkmail.pl b/checkmail.pl index 4a0a1ad..27cd5c7 100644 --- a/checkmail.pl +++ b/checkmail.pl @@ -1,15 +1,15 @@ #! /usr/bin/perl -w # -# checkmail Version 0.6.1 by Thomas Hochstein +# checkmail Version 0.6.3 by Thomas Hochstein # # This script tries to verify the deliverability of (a) mail address(es). # -# Copyright (c) 2002-2011 Thomas Hochstein +# Copyright (c) 2002-2016 Thomas Hochstein # # It can be redistributed and/or modified under the same terms under # which Perl itself is published. -our $VERSION = "0.6.2"; +our $VERSION = "0.6.3 (unreleased)"; ################################# Configuration ################################ # Please fill in a working configuration! @@ -39,7 +39,7 @@ getopts('Vhqlrf:m:s:e:', \%options); # -V: display version if ($options{'V'}) { - print "$myself v $VERSION\nCopyright (c) 2010-2016 Thomas Hochstein \n"; + print "$myself v $VERSION\nCopyright (c) 2002-2016 Thomas Hochstein \n"; print "This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself.\n"; exit(100); }; @@ -154,27 +154,23 @@ sub gettargets { # no MX record found; log and try A record(s) } else { print_dns_result($domain,'MX',undef,$resolver->errorstring,$logr); - print(" Falling back to A record ...\n") if !($options{'q'}); + print(" Falling back to A record(s) ...\n") if !($options{'q'}); # get A record(s) # may get CNAMEs instead ... if (my $query = $resolver->query($domain,'A','IN')) { - # save number of answers in a counter - my $acount = $query->header->ancount; + print_dns_result($domain,'A/CNAME',$query->header->ancount,undef,$logr); foreach my $rr ($query->answer) { if ($rr->type ne 'A') { - # decrease counter if it's not an A record - $acount--; # report CNAMEs and don't add them to target list if ($rr->type eq 'CNAME') { printf (" ~ '%s' is a CNAME for '%s' and will be resolved accordingly. \n",$rr->name,$rr->cname) if !($options{'q'}); - $$logr .= sprintf("CNAME resolved: %s -> %s\n",$rr->name,$rr->cname); + $$logr .= sprintf("- CNAME resolved: %s -> %s\n",$rr->name,$rr->cname); } next; } $targets{$rr->address} = 0; $$logr .= sprintf("- %s\n",$rr->address); }; - print_dns_result($domain,'A',$acount,undef,$logr); # no A record found either; log and fail } else { print_dns_result($domain,'A',undef,$resolver->errorstring,$logr); @@ -629,11 +625,11 @@ L. =head1 AUTHOR -Thomas Hochstein +Thomas Hochstein =head1 COPYRIGHT AND LICENSE -Copyright (c) 2002-2010 Thomas Hochstein +Copyright (c) 2002-2016 Thomas Hochstein This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself.