Fix annoying error message (Release 0.6.1).
[mail/checkmail.git] / checkmail.pl
index c8f9e91..4ea8398 100644 (file)
@@ -1,15 +1,15 @@
-#! /usr/bin/perl -W
+#! /usr/bin/perl -w
 #
-# checkmail Version 0.5 by Thomas Hochstein
+# checkmail Version 0.6.1 by Thomas Hochstein
 #
 # This script tries to verify the deliverability of (a) mail address(es).
 # 
-# Copyright (c) 2002-2010 Thomas Hochstein <thh@inter.net>
+# Copyright (c) 2002-2011 Thomas Hochstein <thh@inter.net>
 #
 # It can be redistributed and/or modified under the same terms under 
 # which Perl itself is published.
 
-our $VERSION = "0.5";
+our $VERSION = "0.6.1";
 
 ################################# Configuration ################################
 # Please fill in a working configuration!
@@ -93,8 +93,9 @@ my (%targets,$curstat,$status,$log,$message);
 foreach (@addresses) {
   my $address = $_;
   # regexp taken from http://www.regular-expressions.info/email.html
-  # and escaping of "/" added two times
-  if ($address !~ /^(?:[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i) {
+  # with escaping of "/" added two times and "*" changed to "+"
+  # in localpart, second alternative
+  if ($address !~ /^(?:[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f]+)")@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i) {
     printf("  > Address <%s> is syntactically INVALID.\n",$address) if !($options{'q'});
     $curstat = 2;
   } else {
@@ -223,10 +224,13 @@ sub checksmtp {
         # connection failure?
         if ($success < 0) {
           $status = connection_failed(@message);
+          # reset status - the address has been checked and _is_ valid!
+          $status = 3;
+          print "  > Address verification currently impossible. You'll have to try again or send a test mail ...\n" if !($options{'q'});
         # verification impossible?
         } elsif ($success) {
           $status = 3;
-          print "  > Address verificaton impossible. You'll have to send a test mail ...\n" if !($options{'q'});
+          print "  > Address verification impossible. You'll have to send a test mail ...\n" if !($options{'q'});
         }
       }
       # if -r is not set or status was not set to 3: valid address
This page took 0.010499 seconds and 4 git commands to generate.