@@ -, +, @@ --- about.pl | 3 ++- cpanfile | 2 +- members/memberentry.pl | 8 ++++---- opac/opac-memberentry.pl | 8 ++++---- opac/opac-shareshelf.pl | 10 ++-------- 5 files changed, 13 insertions(+), 18 deletions(-) --- a/about.pl +++ a/about.pl @@ -24,6 +24,7 @@ use Modern::Perl; use CGI qw ( -utf8 ); use DateTime::TimeZone; +use Email::Address; use File::Spec; use File::Slurp; use List::MoreUtils qw/ any /; @@ -198,7 +199,7 @@ my $warnPrefAnonymousPatronAnonSuggestions_PatronDoesNotExist = ( $AnonymousPatr my $warnPrefAnonymousPatronOPACPrivacy_PatronDoesNotExist = ( not $anonymous_patron and Koha::Patrons->search({ privacy => 2 })->count ); -my $warnPrefKohaAdminEmailAddress = not Email::Valid->address(C4::Context->preference('KohaAdminEmailAddress')); +my $warnPrefKohaAdminEmailAddress = C4::Context->preference('KohaAdminEmailAddress') !~ m/$Email::Address::mailbox/; my $c = Koha::Items->filter_by_visible_in_opac->count; my @warnings = C4::Context->dbh->selectrow_array('SHOW WARNINGS'); --- a/cpanfile +++ a/cpanfile @@ -35,11 +35,11 @@ requires 'DateTime::Format::MySQL', '0.04'; requires 'DateTime::TimeZone', '1.20'; requires 'Digest::MD5', '2.36'; requires 'Digest::SHA', '5.43'; +requires 'Email::Address', '>= 1.908'; requires 'Email::Date', '1.103'; requires 'Email::MessageID', '1.406'; requires 'Email::Sender', '1.300030'; requires 'Email::Stuffer', '0.014'; -requires 'Email::Valid', '0.190'; requires 'Exception::Class', '1.38'; requires 'File::Slurp', '9999.13'; requires 'Font::TTF', '0.45'; --- a/members/memberentry.pl +++ a/members/memberentry.pl @@ -46,7 +46,7 @@ use Koha::Patron::Categories; use Koha::Patron::HouseboundRole; use Koha::Patron::HouseboundRoles; use Koha::Token; -use Email::Valid; +use Email::Address; use Koha::SMS::Providers; use vars qw($debug); @@ -400,13 +400,13 @@ if ($op eq 'save' || $op eq 'insert'){ my $emailalt = $input->param('B_email'); if ($emailprimary) { - push (@errors, "ERROR_bad_email") if (!Email::Valid->address($emailprimary)); + push (@errors, "ERROR_bad_email") if ($emailprimary !~ m/$Email::Address::mailbox/); } if ($emailsecondary) { - push (@errors, "ERROR_bad_email_secondary") if (!Email::Valid->address($emailsecondary)); + push (@errors, "ERROR_bad_email_secondary") if ($emailsecondary !~ m/$Email::Address::mailbox/); } if ($emailalt) { - push (@errors, "ERROR_bad_email_alternative") if (!Email::Valid->address($emailalt)); + push (@errors, "ERROR_bad_email_alternative") if ($emailalt !~ m/$Email::Address::mailbox/); } if (C4::Context->preference('ExtendedPatronAttributes') and $input->param('setting_extended_patron_attributes')) { --- a/opac/opac-memberentry.pl +++ a/opac/opac-memberentry.pl @@ -34,7 +34,7 @@ use Koha::Patron::Consent; use Koha::Patron::Modification; use Koha::Patron::Modifications; use C4::Scrubber; -use Email::Valid; +use Email::Address; use Koha::DateUtils; use Koha::Libraries; use Koha::Patron::Attribute::Types; @@ -445,7 +445,7 @@ sub CheckForInvalidFields { my $borrower = shift; my @invalidFields; if ($borrower->{'email'}) { - unless ( Email::Valid->address($borrower->{'email'}) ) { + unless ( $borrower->{'email'} =~ m/$Email::Address::mailbox/ ) { push(@invalidFields, "email"); } elsif ( C4::Context->preference("PatronSelfRegistrationEmailMustBeUnique") ) { my $patrons_with_same_email = Koha::Patrons->search( # FIXME Should be search_limited? @@ -471,10 +471,10 @@ sub CheckForInvalidFields { delete $borrower->{'repeat_email'}; } if ($borrower->{'emailpro'}) { - push(@invalidFields, "emailpro") if (!Email::Valid->address($borrower->{'emailpro'})); + push(@invalidFields, "emailpro") if ($borrower->{'emailpro'} !~ m/$Email::Address::mailbox/); } if ($borrower->{'B_email'}) { - push(@invalidFields, "B_email") if (!Email::Valid->address($borrower->{'B_email'})); + push(@invalidFields, "B_email") if ($borrower->{'B_email'} !~ m/$Email::Address::mailbox/); } if ( defined $borrower->{'password'} and $borrower->{'password'} ne $borrower->{'password2'} ) --- a/opac/opac-shareshelf.pl +++ a/opac/opac-shareshelf.pl @@ -25,7 +25,7 @@ use constant SHELVES_URL => '/cgi-bin/koha/opac-shelves.pl?display=privateshelves&viewshelf='; use CGI qw ( -utf8 ); -use Email::Valid; +use Email::Address; use C4::Auth; use C4::Context; @@ -196,7 +196,7 @@ sub process_addrlist { foreach my $a (@temp) { $a =~ s/^\s+//; $a =~ s/\s+$//; - if ( IsEmailAddress($a) ) { + if ( $a =~ m/$Email::Address::mailbox/ ) { push @appr_addr, $a; } else { @@ -297,12 +297,6 @@ sub load_template_vars { ); } -sub IsEmailAddress { - - #TODO candidate for a module? - return Email::Valid->address( $_[0] ) ? 1 : 0; -} - sub randomlist { #uses rand, safe enough for this application but not for more sensitive data --