]> git.proxmox.com Git - pmg-api.git/commitdiff
quarantine: fix adding non-ascii senders to wl/bl
authorDominik Csapak <d.csapak@proxmox.com>
Thu, 24 Nov 2022 12:21:09 +0000 (13:21 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Thu, 24 Nov 2022 13:38:44 +0000 (14:38 +0100)
by trying to decode them since they maybe were sent with SMTPUTF8
also make 'try_decode_utf8' an export of Utils and use that

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
src/PMG/API2/Quarantine.pm
src/PMG/Utils.pm

index 0260f03264f169c77a236e2253ef21b123f82f66..fbb302a736c94c04c7a94cc0747a1b6309f3b0d2 100644 (file)
@@ -24,7 +24,7 @@ use PVE::RESTHandler;
 use PVE::INotify;
 use PVE::APIServer::Formatter;
 
-use PMG::Utils;
+use PMG::Utils qw(try_decode_utf8);
 use PMG::AccessControl;
 use PMG::Config;
 use PMG::DBTools;
@@ -141,8 +141,8 @@ my $parse_header_info = sub {
     my $sender = PMG::Utils::decode_rfc1522(PVE::Tools::trim($head->get('sender')));
     $res->{sender} = $sender if $sender && ($sender ne $res->{from});
 
-    $res->{envelope_sender} = PMG::Utils::try_decode_utf8($ref->{sender});
-    $res->{receiver} = PMG::Utils::try_decode_utf8($ref->{receiver} // $ref->{pmail});
+    $res->{envelope_sender} = try_decode_utf8($ref->{sender});
+    $res->{receiver} = try_decode_utf8($ref->{receiver} // $ref->{pmail});
     $res->{id} = 'C' . $ref->{cid} . 'R' . $ref->{rid} . 'T' . $ref->{ticketid};
     $res->{time} = $ref->{time};
     $res->{bytes} = $ref->{bytes};
@@ -1181,7 +1181,7 @@ __PACKAGE__->register_method ({
        for my $id (@idlist) {
 
            my $ref = $get_and_check_mail->($id, $rpcenv, $dbh);
-           my $sender = $get_real_sender->($ref);
+           my $sender = try_decode_utf8($get_real_sender->($ref));
 
            if ($action eq 'whitelist') {
                PMG::Quarantine::add_to_blackwhite($dbh, $ref->{pmail}, 'WL', [ $sender ]);
index 5c9e873e786553b19b064b132d7add385486cd1c..463de6d7ba0bb32a536a9d7a38a6645be03cfe86 100644 (file)
@@ -45,6 +45,7 @@ use base 'Exporter';
 
 our @EXPORT_OK = qw(
 postgres_admin_cmd
+try_decode_utf8
 );
 
 my $valid_pmg_realms = ['pam', 'pmg', 'quarantine'];