if length($blist) > $maxlen;
}
- $dbh->do(
- "DELETE FROM UserPrefs WHERE pmail = $qu AND (Name = 'WL' OR Name = 'BL');" .
+ my $queries = "DELETE FROM UserPrefs WHERE pmail = $qu AND (Name = 'WL' OR Name = 'BL');";
+ if (scalar(keys %{$list->{WL}})) {
+ $queries .=
"INSERT INTO UserPrefs (PMail, Name, Data, MTime) " .
- "VALUES ($qu, 'BL', $blist, EXTRACT (EPOCH FROM now()));" .
+ "VALUES ($qu, 'WL', $wlist, EXTRACT (EPOCH FROM now()));";
+ }
+ if (scalar(keys %{$list->{BL}})) {
+ $queries .=
"INSERT INTO UserPrefs (PMail, Name, Data, MTime) " .
- "VALUES ($qu, 'WL', $wlist, EXTRACT (EPOCH FROM now()));");
+ "VALUES ($qu, 'BL', $blist, EXTRACT (EPOCH FROM now()));";
+ }
+ $dbh->do($queries);
}
my $values = [ keys %{$list->{$name}} ];
}
sub deliver_quarantined_mail {
- my ($dbh, $ref, $targets) = @_;
+ my ($dbh, $ref, $receiver) = @_;
my $filename = $ref->{file};
my $spooldir = $PMG::MailQueue::spooldir;
my $path = "$spooldir/$filename";
- my $id = 'C' . $ref->{cid} . 'R' . $ref->{rid};
+ my $id = 'C' . $ref->{cid} . 'R' . $ref->{rid} . 'T' . $ref->{ticketid};;
my $sender = 'postmaster'; # notify postmaster if something fails
die sprintf("smtp from error - got: %s %s\n", $smtp->code, $smtp->message);
}
- if (!$smtp->to (@$targets)) {
+ if (!$smtp->to($receiver)) {
die sprintf("smtp to error - got: %s %s\n", $smtp->code, $smtp->message);
}
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}, $ref->{pmail});
+ "WHERE CMailStore_CID = ? AND CMailStore_RID = ? AND TicketID = ?");
+ $sth->execute(time(), $ref->{cid}, $ref->{rid}, $ref->{ticketid});
$sth->finish;
};
my $err = $@;
my $spooldir = $PMG::MailQueue::spooldir;
my $path = "$spooldir/$filename";
- my $id = 'C' . $ref->{cid} . 'R' . $ref->{rid};
+ my $id = 'C' . $ref->{cid} . 'R' . $ref->{rid} . 'T' . $ref->{ticketid};;
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}, $ref->{pmail});
+ "CMailStore_CID = ? AND CMailStore_RID = ? AND TicketID = ?");
+ $sth->execute (time(), $ref->{cid}, $ref->{rid}, $ref->{ticketid});
$sth->finish;
};
if (my $err = $@) {