From c05b3c6ea22327fc84c21f5cff17aae32f595d73 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Mon, 22 Mar 2021 14:47:33 -0300 Subject: [PATCH] Bug 28017: Allow non-FQDN (@localhost) addresses This patch makes Koha::Email support using @localhost addresses. To test: 1. Apply the regression tests 2. Run: $ kshell k$ prove t/Koha/Email.t => FAIL: Koha::Email doesn't support non-fqdn addresses 3. Apply this patch 4. Repeat 2 => SUCCESS: All tests pass! 5. Sign off :-D Signed-off-by: Tomas Cohen Arazi Signed-off-by: Martin Renvoize Signed-off-by: Kyle M Hall Signed-off-by: Jonathan Druart (cherry picked from commit 4413557b0074bc7b7fc6b2614889f23521ecb0ee) Signed-off-by: Fridolin Somers --- Koha/Email.pm | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Koha/Email.pm b/Koha/Email.pm index 64c811c9ef..9c077a6b84 100644 --- a/Koha/Email.pm +++ b/Koha/Email.pm @@ -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($args->{from}); # from is mandatory + unless Email::Valid->address( -address => $args->{from}, -fqdn => 0 ); # 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($args->{to}); # to is mandatory + unless Email::Valid->address( -address => $args->{to}, -fqdn => 0 ); # to is mandatory my $addresses = {}; $addresses->{reply_to} = $params->{reply_to}; @@ -108,9 +108,13 @@ sub create { if exists $params->{bcc}; } - foreach my $address ( keys %{ $addresses } ) { - Koha::Exceptions::BadParameter->throw("Invalid '$address' parameter: ".$addresses->{$address}) - if $addresses->{$address} and !Email::Valid->address($addresses->{$address}); + 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 + ); } $args->{cc} = $addresses->{cc} -- 2.39.5