From: Ulrich Kleiber Date: Wed, 5 Feb 2020 10:04:20 +0000 (+0100) Subject: Bug 24588: Prevent e-mails from Koha to be flagged as spam X-Git-Tag: v20.05.00~1467 X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=commitdiff_plain;h=a24a82d757feab0ae17eada4ceb72f16ead54c06;p=koha-ffzg.git Bug 24588: Prevent e-mails from Koha to be flagged as spam Set the e-mail headers Mailer-X and MessageID by Koha, to gain a better positive score from the spam filter. To test: 1) Let Koha send an e-mail message. 2) Check the header of this e-mail message with your e-mail client. There should be no X-Mailer header with value 'Koha'. If there is an MessageID header, it is probably set by the MSA, e.g. Exim. Example: Message-Id: 3) Apply patch. 4) Repeat step 1. 5) Check the header of the new e-mail message with your e-mail client. There should be a X-Mailer header with value 'Koha' and a MessageID header with a value set by Koha. Example: X-Mailer: Koha Message-Id: <15807387030.B731e.18490@FQDN> 6) Sign off. Signed-off-by: Martin Renvoize Signed-off-by: Jonathan Druart Signed-off-by: Martin Renvoize --- diff --git a/Koha/Email.pm b/Koha/Email.pm index 58340756e8..d0c2adea74 100644 --- a/Koha/Email.pm +++ b/Koha/Email.pm @@ -19,6 +19,7 @@ package Koha::Email; use Modern::Perl; use Email::Valid; +use Email::MessageID; use base qw(Class::Accessor); use C4::Context; @@ -70,6 +71,8 @@ sub create_message_headers { $mail{'Message'} = $params->{message} if $params->{message}; $mail{'Subject'} = $params->{subject} if $params->{subject}; $mail{'Content-Type'} = $params->{contenttype} if $params->{contenttype}; + $mail{'X-Mailer'} = "Koha"; + $mail{'Message-ID'} = Email::MessageID->new->in_brackets; return %mail; } 1; diff --git a/cpanfile b/cpanfile index 38a7a4fbe2..4837e7b2b3 100644 --- a/cpanfile +++ b/cpanfile @@ -36,6 +36,7 @@ requires 'DateTime::TimeZone', '1.20'; requires 'Digest::MD5', '2.36'; requires 'Digest::SHA', '5.43'; requires 'Email::Date', '1.103'; +requires 'Email::MessageID', '1.406'; requires 'Email::Valid', '0.190'; requires 'Exception::Class', '1.38'; requires 'File::Slurp', '9999.13';