Bugzilla – Attachment 124753 Details for
Bug 28870
Cart shipping fails because of Non-ASCII characters in display-name of reply-to address
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 28870: Use Email::Address to validate email addresses
Bug-28870-Use-EmailAddress-to-validate-email-addre.patch (text/plain), 3.32 KB, created by
Martin Renvoize (ashimema)
on 2021-09-10 12:06:13 UTC
(
hide
)
Description:
Bug 28870: Use Email::Address to validate email addresses
Filename:
MIME Type:
Creator:
Martin Renvoize (ashimema)
Created:
2021-09-10 12:06:13 UTC
Size:
3.32 KB
patch
obsolete
>From a58be35368e1d3c4cff9b2c5480d878171532f2b Mon Sep 17 00:00:00 2001 >From: Tomas Cohen Arazi <tomascohen@theke.io> >Date: Fri, 20 Aug 2021 18:23:30 -0300 >Subject: [PATCH] Bug 28870: Use Email::Address to validate email addresses > >This patch adds a new dependency, Email::Address. It is used in >Koha::Email to replace the current use of Email::Valid, which proved to >be problematic when it comes to UTF-8 characters. > >Email::Address provides suitable regexes that -when used- keep our >tests passing, but also deal better with UTF-8 data. > >To test: >1. Apply the regression tests patch >2. Notice the only change is that it tweaks a couple addresses so they > contain umlauts and also have the "Description <address>" format that > is used when sending carts. >3. Run: > $ kshell > k$ prove t/Koha/Email.t >=> FAIL: Tests fail! Things die because Email::Valid doesn't like the > from we passed. >4. Run: > $ sudo apt install libemail-address-perl >5. Apply this patch >6. Repeat 3 >=> SUCCESS: Tests pass! >7. Try what is described in comment 1 >=> SUCCESS: Things are back to normal >8. Sign off :-D >9. Send cookies > >Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> >Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> >--- > Koha/Email.pm | 12 +++++------- > cpanfile | 1 + > 2 files changed, 6 insertions(+), 7 deletions(-) > >diff --git a/Koha/Email.pm b/Koha/Email.pm >index 5083af8bbd..4feeb0ad99 100644 >--- a/Koha/Email.pm >+++ b/Koha/Email.pm >@@ -20,7 +20,7 @@ package Koha::Email; > > use Modern::Perl; > >-use Email::Valid; >+use Email::Address; > use Email::MessageID; > use List::Util qw( pairs ); > >@@ -78,7 +78,7 @@ sub create { > my $args = {}; > $args->{from} = $params->{from} || C4::Context->preference('KohaAdminEmailAddress'); > Koha::Exceptions::BadParameter->throw("Invalid 'from' parameter: ".$args->{from}) >- unless Email::Valid->address( -address => $args->{from}, -fqdn => 0 ); # from is mandatory >+ unless $args->{from} =~ m/$Email::Address::mailbox/; # from is mandatory > > $args->{subject} = $params->{subject} // ''; > >@@ -90,7 +90,7 @@ sub create { > } > > Koha::Exceptions::BadParameter->throw("Invalid 'to' parameter: ".$args->{to}) >- unless Email::Valid->address( -address => $args->{to}, -fqdn => 0 ); # to is mandatory >+ unless $args->{to} =~ m/$Email::Address::mailbox/; # to is mandatory > > my $addresses = {}; > $addresses->{reply_to} = $params->{reply_to}; >@@ -111,10 +111,8 @@ sub create { > foreach my $address ( keys %{$addresses} ) { > Koha::Exceptions::BadParameter->throw( > "Invalid '$address' parameter: " . $addresses->{$address} ) >- if $addresses->{$address} and !Email::Valid->address( >- -address => $addresses->{$address}, >- -fqdn => 0 >- ); >+ if $addresses->{$address} >+ and $addresses->{$address} !~ m/$Email::Address::mailbox/; > } > > $args->{cc} = $addresses->{cc} >diff --git a/cpanfile b/cpanfile >index 6e13f04932..8aa37b55ea 100644 >--- a/cpanfile >+++ b/cpanfile >@@ -34,6 +34,7 @@ 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'; >-- >2.20.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 28870
:
124002
|
124003
|
124004
|
124117
|
124118
|
124119
|
124178
|
124179
|
124180
|
124183
|
124184
|
124185
|
124752
|
124753
|
124754
|
124755
|
124756
|
124757
|
124762
|
124763
|
124764
|
124765
|
124766
|
124767
|
127521
|
127522
|
127523
|
127524
|
127525
|
127526
|
127745
|
127746
|
127747
|
127748
|
127749
|
127750