Main Koha release repository https://koha-community.org
Find a file
Martin Renvoize 3955815a47 Bug 28729: Make Koha::Email->send_or_die handle returnpath
Koha used to rely on Mail::Sendmail for sending emails. As an SMTP
client, the library would extract the from address from the Sender
header to pass along in the MAIL FROM: field of the SMTP protocol [1].

This was overlooked when we moved to Email::Stuffer/Email::Simple and
there's a different behavior as it expects the envelope to be passed and
falls back to extracting the 'From' header when said envelope is not
found [2].

This patchset re-introduces the behavior from Mail::Sendmail by
overriding the send_or_die method locally (in Koha::Email) and doing the
right thing.

Unless an explicit {from} parameter is passed, it extracts the MAIL FROM
envelope from the Sender header, as Mail::Sendmail did, and calls
$self->SUPER::send_or_die with the right parameters.

To test:
1. Apply the unit tests
2. Run:
   $ kshell
   k$ prove t/Koha/Email.t
   => FAIL: Sender is not handled correctly!
3. Apply this patch
4. Repeat 2
   => SUCCESS: Tests pass!
   The from parameter is correct!
   No Sender header sent!
5. Sign off :-D

[1] https://metacpan.org/dist/Mail-Sendmail/source/lib/Mail/Sendmail.pm#L284
[2] https://metacpan.org/pod/Email::Sender::Manual::QuickStart#envelope-information

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

AMENDED (SHORTENED)
-        my @headers = $self->email->header_str_pairs;
-        foreach my $pair ( pairs @headers ) {
-            my ( $header, $value ) = @$pair;
-            $args->{from} = $value if $header eq 'Sender';
-        }
-
-        # Remove the Sender header
-        $self->email->header_str_set('Sender');
+        $args->{from} = $self->email->header_str('Sender');
+        $self->email->header_str_set('Sender'); # remove Sender header

Tested with same results (scrambled domains):
From: noreply@mydevserver.com
Cc: marcel@email.nl
To: test@somewhere.nl
Reply-To: bieb@mydevserver.com
Return-Path: postmaster@mydevserver.com

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-11-02 16:50:01 +01:00
acqui Bug 29283: (QA follow-up) Remove code duplication 2021-11-02 14:57:09 +01:00
admin Bug 28859: Fix missing column setting 2021-10-28 17:32:34 +02:00
api Bug 29290: Add spec changes 2021-10-28 17:32:34 +02:00
authorities Bug 28785: Adjust check_cookie_auth calls 2021-10-18 11:28:41 +02:00
basket Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
bin Bug 20582: Turn Koha into a Mojolicious application 2020-10-06 12:00:04 +02:00
C4 Bug 27884: Add html support for report mails 2021-11-02 16:50:01 +01:00
catalogue Bug 28959: (QA follow-up) One more lost 'category' to 'public' change 2021-11-02 14:27:12 +01:00
cataloguing Bug 29319: Use Business::ISBN to check ISBNs on addbooks.pl/cataloging search 2021-11-02 15:58:08 +01:00
circ Bug 28211: Replace use of call_recursive() with call() 2021-10-18 11:28:41 +02:00
clubs Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
course_reserves Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
debian Bug 18984: Remove NORMARC support 2021-10-07 15:36:40 +02:00
docs Bug 28904: Fix typo and display 2021-11-02 16:50:01 +01:00
errors Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
etc Bug 20463: (follow-up) Configure short name mrl for Multipart-resource-level index 2021-10-25 14:08:06 +02:00
ill Bug 22614: Migrate original request 2021-09-21 20:22:57 +02:00
installer Bug 28263: DBRev 21.06.00.040 2021-11-02 16:50:01 +01:00
Koha Bug 28729: Make Koha::Email->send_or_die handle returnpath 2021-11-02 16:50:01 +01:00
koha-tmpl Bug 28904: Fix typo and display 2021-11-02 16:50:01 +01:00
labels Bug 17600: Fix POSIX imports 2021-07-29 14:37:26 +02:00
lib/CGI/Session/Serialize Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
members Bug 28211: Replace use of call_recursive() with call() 2021-10-18 11:28:41 +02:00
misc Bug 29223: Use patron's branchcode for digest if not sending digest per branch 2021-11-02 14:57:21 +01:00
offline_circ Bug 28785: Adjust check_cookie_auth calls 2021-10-18 11:28:41 +02:00
opac Bug 28959: Fix other cases 2021-10-28 17:47:38 +02:00
patron_lists Bug 16446: Add ability to add patrons to list by borrowernumber 2021-10-21 12:24:04 +02:00
patroncards Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
plugins Bug 28785: Adjust check_cookie_auth calls 2021-10-18 11:28:41 +02:00
pos Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
reports Bug 17600: Fix imports for GetClassSources in guided_reports.pl 2021-11-02 14:27:48 +01:00
reserve Bug 29116: Use a pre-existing accessor instead of reimplementing it 2021-10-12 11:15:32 +02:00
reviews Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
rotating_collections Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
serials Bug 28785: Adjust check_cookie_auth calls 2021-10-18 11:28:41 +02:00
services Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
skel
suggestion Bug 24370: Allow resetting library to ANY 2021-11-02 14:57:04 +01:00
svc Bug 28959: Add virtualshelves.public as a boolean 2021-10-28 17:47:38 +02:00
t Bug 27884: Add tests 2021-11-02 16:50:01 +01:00
tags Bug 28785: Adjust check_cookie_auth calls 2021-10-18 11:28:41 +02:00
tmp/modified_authorities
tools Bug 28959: Fix occurrence in tools/batch_record_modification.pl 2021-11-02 14:27:12 +01:00
virtualshelves Bug 28959: Fix other cases 2021-10-28 17:47:38 +02:00
xt Bug 27622: Fix sample_notices.t 2021-10-07 15:49:01 +02:00
.editorconfig Bug 24774: Set JSON indentation of 2 spaces in .editorconfig 2020-03-19 09:24:52 +00:00
.eslintrc.json Bug 23834: Add default ESLint configuration 2019-11-03 08:02:39 +00:00
.gitignore
.htaccess
.mailmap Bug 28386: Disambiguate Tomas and Blou 2021-05-26 12:30:59 +02:00
.perlcriticrc Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
.proverc.dist Bug 19821: Install sample data, ES mappings and Version syspref 2021-10-25 11:27:40 +02:00
.scss-lint.yml Bug 21237: Clean up staff client SCSS 2018-08-24 16:23:25 +00:00
about.pl Bug 28870: Move email address validation to a specific class method 2021-09-28 10:22:36 +02:00
app.psgi Bug 20582: Fix PSGI file when behind a reverse proxy 2020-10-06 12:00:04 +02:00
changelanguage.pl Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
cpanfile Bug 28926: Update cpanfile for Mojolicious::Plugin::OpenAPI v2.16 2021-11-02 16:06:51 +01:00
fix-perl-path.PL Bug 28606: Remove $DEBUG and $ENV{DEBUG} 2021-06-24 11:53:44 +02:00
gulpfile.js Bug 18984: Remove NORMARC support 2021-10-07 15:36:40 +02:00
help.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
INSTALL Bug 26617: Update INSTALL file to include koha-testing-docker and Gitlab links 2020-10-15 12:56:30 +02:00
Koha.pm Bug 28263: DBRev 21.06.00.040 2021-11-02 16:50:01 +01:00
koha_perl_deps.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
kohaversion.pl Bug 26384: Fix executable flags 2020-09-11 09:56:56 +02:00
LICENSE
mainpage.pl Bug 29020: Add link on the mainpage for users without admin access 2021-10-19 09:29:09 +02:00
Makefile.PL Bug 18984: Remove NORMARC support 2021-10-07 15:36:40 +02:00
MANIFEST.SKIP
package.json Bug 27939: Update yarn.lock file 2021-03-16 12:04:06 +01:00
README
README.md Bug 27092: Remove note about "synced repo" from README.md 2020-11-25 16:31:58 +01:00
README.robots
rewrite-config.PL Bug 28519: Put CGI::Session::Serialize::yamlxs in lib directory 2021-06-17 10:07:36 +02:00
yarn.lock Bug 27939: Update yarn.lock file 2021-03-16 12:04:06 +01:00

Koha is a free software integrated library system (ILS).

Koha is distributed under the GNU GPL version 3 or later.

Note: Koha does not accept pull requests from git hosting sites.

Note: This project has its own bug tracker, to report a bug or submit a patch visit http://bugs.koha-community.org.

For guidelines on submitting patches for Koha please visit https://wiki.koha-community.org/wiki/SubmitingAPatch

The developers handbook can be found at https://wiki.koha-community.org/wiki/Developer_handbook

http://koha-community.org/

Koha Logo