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
|
@ -93,8 +93,9 @@ my (%targets,$curstat,$status,$log,$message);
|
||||||
foreach (@addresses) {
|
foreach (@addresses) {
|
||||||
my $address = $_;
|
my $address = $_;
|
||||||
# regexp taken from http://www.regular-expressions.info/email.html
|
# regexp taken from http://www.regular-expressions.info/email.html
|
||||||
# and escaping of "/" added two times
|
# with escaping of "/" added two times and "*" changed to "+"
|
||||||
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) {
|
# 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'});
|
printf(" > Address <%s> is syntactically INVALID.\n",$address) if !($options{'q'});
|
||||||
$curstat = 2;
|
$curstat = 2;
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue