use strict;
use warnings;
-use Carp;
use DBI;
use PVE::SafeSyslog;
return 'BCC';
}
-sub oicon {
- return 'bcc.gif';
-}
-
-sub oinfo {
- return 'Blind carbon copy.';
-}
-
sub oisedit {
return 1;
}
sub save {
my ($self, $ruledb) = @_;
- defined($self->{ogroup}) || croak "undefined object attribute: ERROR";
- defined($self->{target}) || croak "undefined object attribute: ERROR";
- defined($self->{original}) || croak "undefined object attribute: ERROR";
+ defined($self->{ogroup}) || die "undefined object attribute: ERROR";
+ defined($self->{target}) || die "undefined object attribute: ERROR";
+ defined($self->{original}) || die "undefined object attribute: ERROR";
if ($self->{original}) {
$self->{original} = 1;
my $subgroups = $mod_group->subgroups($targets, 1);
+ my $rulename = $vars->{RULE} // 'unknown';
+
my $bcc_to = PMG::Utils::subst_values($self->{target}, $vars);
if ($bcc_to =~ m/^\s*$/) {
# this happens if a notification is triggered by bounce mails
# which notifies the sender <> - we just log and then ignore it
- syslog('info', "%s: bcc to <> (ignored)", $queue->{logid});
+ syslog('info', "%s: bcc to <> (rule: %s, ignored)", $queue->{logid}, $rulename);
return;
}
$msginfo->{xforward}, $msginfo->{fqdn}, 1);
foreach (@bcc_targets) {
if ($qid) {
- syslog('info', "%s: bcc to <%s> (%s)", $queue->{logid}, $_, $qid);
+ syslog('info', "%s: bcc to <%s> (rule: %s, %s)", $queue->{logid}, $_, $rulename, $qid);
} else {
- syslog('err', "%s: bcc to <%s> failed", $queue->{logid}, $_);
+ syslog('err', "%s: bcc to <%s> (rule: %s) failed", $queue->{logid}, $_, $rulename);
}
}
}
sub short_desc {
my $self = shift;
- return "send bcc to: $self->{target}";
+ my $descr = "send bcc to: $self->{target}";
+
+ $descr .= " (original)" if $self->{original};
+
+ return $descr;
+}
+
+sub properties {
+ my ($class) = @_;
+
+ return {
+ target => {
+ description => "Send a Blind Carbon Copy to this email address.",
+ type => 'string', format => 'email',
+ },
+ original =>{
+ description => "Send the original, unmodified mail.",
+ type => 'boolean',
+ optional => 1,
+ default => 1,
+ },
+ };
+}
+
+sub get {
+ my ($self) = @_;
+
+ return {
+ target => $self->{target},
+ original => $self->{original},
+ };
+}
+
+sub update {
+ my ($self, $param) = @_;
+
+ $self->{target} = $param->{target};
+ $self->{original} = $param->{original} ? 1 : 0;
}
1;