Fix regexp for syntax-checking.
It was matching ""@domain; AFAIU RFC 5322, only "something"@domain should be legal, but not an empty quoted string. Signed-off-by: Thomas Hochstein <thh@inter.net>
This commit is contained in:
		
							parent
							
								
									ea5d225aa4
								
							
						
					
					
						commit
						5327436fa4
					
				
					 1 changed files with 3 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -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 {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue