Bug 28275 - Cart in OPAC doesn't sent mails if surname or firstname contains diacritics
Summary: Cart in OPAC doesn't sent mails if surname or firstname contains diacritics
Status: RESOLVED DUPLICATE of bug 28870
Alias: None
Product: Koha
Classification: Unclassified
Component: OPAC (show other bugs)
Version: master
Hardware: All All
: P5 - low normal (vote)
Assignee: Bugs List
QA Contact: Testopia
Depends on:
Reported: 2021-05-01 15:39 UTC by verolencinas
Modified: 2022-02-19 22:31 UTC (History)
2 users (show)

See Also:
Change sponsored?: ---
Patch complexity: ---
Documentation contact:
Documentation submission:
Text to go in the release notes:
Version(s) released in:


Note You need to log in before you can comment on or make changes to this bug.
Description verolencinas 2021-05-01 15:39:34 UTC
If surname or firstname have diacritics, users can't send their carts in the OPAC.

1) Create a user with diacritics in surname or firstname
2) Log in the OPAC with this user
3) Send records through the cart.

You get an error in the cart and in the opac-error.log this error message:
 opac-sendbasket.pl: Error sending mail: Invalid 'reply_to' parameter: ... at /usr/share/koha/opac/cgi-bin/opac/opac-sendbasket.pl line 174
Comment 1 Owen Leonard 2021-05-03 10:53:00 UTC
Confirmed in master.
Comment 2 Filippos Kolovos 2021-06-04 14:13:54 UTC

Upon further investigation, the problem does not seem to be solely with the diacritics in the user's name, but with ANY character other than the ones forming an email address in the user's email.

The purpose is to form a combination of the user's fullname and the email, in the form John Doe <john.doe@test.com>, but it does not pass the Email::Valid->addresses() method in Koha::Email, throwing a BadParameter exception in line 112. I guess that this method is very strict in validating the email address format

One quick workaround would be to change the line 62 in /usr/share/koha/opac/cgi-bin/opac/opac-sendbasket.pl
my $email_replyto = $patron->firstname . " " . $patron->surname . " <$user_email>";
my $email_replyto = $user_email;

It was checked and it works.

Further work could include to first validate the email address and afterwards to include the user's firstname and lastname along with the "<",">" characters around the email.
Comment 3 Katrin Fischer 2022-02-19 22:31:53 UTC
This is a duplicate to bug 28870 that was fixed in: 21.11.00,21.05.05,20.11.12

*** This bug has been marked as a duplicate of bug 28870 ***