зеркало из https://github.com/microsoft/git.git
send-email: quiet some warnings, reject invalid addresses
I'm not sure why we never actually rejected invalid addresses in the first place. We just seemed to be using our email validity checkers to kill duplicates. Now we just drop invalid email addresses completely and warn the user about it. Since we support local sendmail, we'll also accept username-only addresses. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Родитель
aca7ad7628
Коммит
db3106b274
|
@ -307,6 +307,10 @@ our ($message_id, $cc, %mail, $subject, $reply_to, $message);
|
|||
|
||||
sub extract_valid_address {
|
||||
my $address = shift;
|
||||
|
||||
# check for a local address:
|
||||
return $address if ($address =~ /^([\w\-]+)$/);
|
||||
|
||||
if ($have_email_valid) {
|
||||
return Email::Valid->address($address);
|
||||
} else {
|
||||
|
@ -498,9 +502,14 @@ sub unique_email_list(@) {
|
|||
my @emails;
|
||||
|
||||
foreach my $entry (@_) {
|
||||
my $clean = extract_valid_address($entry);
|
||||
next if $seen{$clean}++;
|
||||
push @emails, $entry;
|
||||
if (my $clean = extract_valid_address($entry)) {
|
||||
$seen{$clean} ||= 0;
|
||||
next if $seen{$clean}++;
|
||||
push @emails, $entry;
|
||||
} else {
|
||||
print STDERR "W: unable to extract a valid address",
|
||||
" from: $entry\n";
|
||||
}
|
||||
}
|
||||
return @emails;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче