]> git.proxmox.com Git - pmg-api.git/commitdiff
delete/deliver_quarantined_mail: use receiver instead of pmail
authorDietmar Maurer <dietmar@proxmox.com>
Wed, 27 Dec 2017 10:04:21 +0000 (11:04 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Wed, 27 Dec 2017 12:27:50 +0000 (13:27 +0100)
PMG/API2/Quarantine.pm
PMG/Quarantine.pm

index 68c09d280dd6fa44733b10a9baa2149f89fbf1ee..e4b8b8df1686c03534cacd5835ddb50568ed62af 100644 (file)
@@ -931,16 +931,15 @@ __PACKAGE__->register_method ({
        }
 
        my $sender = $get_real_sender->($ref);
-       my $username = $ref->{pmail};
 
        if ($action eq 'whitelist') {
-           PMG::Quarantine::add_to_blackwhite($dbh, $username, 'WL', [ $sender ]);
+           PMG::Quarantine::add_to_blackwhite($dbh, $pmail, 'WL', [ $sender ]);
        } elsif ($action eq 'blacklist') {
-           PMG::Quarantine::add_to_blackwhite($dbh, $username, 'BL', [ $sender ]);
+           PMG::Quarantine::add_to_blackwhite($dbh, $pmail, 'BL', [ $sender ]);
        } elsif ($action eq 'deliver') {
-           PMG::Quarantine::deliver_quarantined_mail($dbh, $ref, $pmail);
+           PMG::Quarantine::deliver_quarantined_mail($dbh, $ref, $ref->{receiver} // $pmail);
        } elsif ($action eq 'delete') {
-           PMG::Quarantine::delete_quarantined_mail($dbh, $ref, $pmail);
+           PMG::Quarantine::delete_quarantined_mail($dbh, $ref, $ref->{receiver} // $pmail);
        } else {
            die "internal error"; # should not be reached
        }
index 51350568d7a8e1ee4e3a741a4a51617b9870d785..88c1275a82885aaebd744e0e10dda8a273b1c61c 100644 (file)
@@ -83,7 +83,7 @@ sub add_to_blackwhite {
 }
 
 sub deliver_quarantined_mail {
-    my ($dbh, $ref, $target) = @_;
+    my ($dbh, $ref, $receiver) = @_;
 
     my $filename = $ref->{file};
     my $spooldir = $PMG::MailQueue::spooldir;
@@ -105,7 +105,7 @@ sub deliver_quarantined_mail {
            die sprintf("smtp from error - got: %s %s\n", $smtp->code, $smtp->message);
        }
 
-       if (!$smtp->to($target)) {
+       if (!$smtp->to($receiver)) {
            die sprintf("smtp to error - got: %s %s\n", $smtp->code, $smtp->message);
        }
 
@@ -144,8 +144,8 @@ sub deliver_quarantined_mail {
 
        my $sth = $dbh->prepare(
            "UPDATE CMSReceivers SET Status='D', MTime = ? " .
-           "WHERE CMailStore_CID = ? AND CMailStore_RID = ? AND PMail = ?");
-       $sth->execute(time(), $ref->{cid}, $ref->{rid}, $target);
+           "WHERE CMailStore_CID = ? AND CMailStore_RID = ? AND (PMail = ? OR Receiver = ?)");
+       $sth->execute(time(), $ref->{cid}, $ref->{rid}, $receiver, $receiver);
        $sth->finish;
     };
     my $err = $@;
@@ -164,7 +164,7 @@ sub deliver_quarantined_mail {
 }
 
 sub delete_quarantined_mail {
-    my ($dbh, $ref, $target) = @_;
+    my ($dbh, $ref, $receiver) = @_;
 
     my $filename = $ref->{file};
     my $spooldir = $PMG::MailQueue::spooldir;
@@ -175,8 +175,8 @@ sub delete_quarantined_mail {
     eval {
        my $sth = $dbh->prepare(
            "UPDATE CMSReceivers SET Status='D', MTime = ? WHERE " .
-           "CMailStore_CID = ? AND CMailStore_RID = ? AND PMail = ?");
-       $sth->execute (time(), $ref->{cid}, $ref->{rid}, $target);
+           "CMailStore_CID = ? AND CMailStore_RID = ? AND (PMail = ? OR Receiver = ?)");
+       $sth->execute (time(), $ref->{cid}, $ref->{rid}, $receiver, $receiver);
        $sth->finish;
     };
     if (my $err = $@) {