use PMG::Utils;
use PMG::ModGroup;
+use PMG::DKIMSign;
use PMG::RuleDB::Object;
use base qw(PMG::RuleDB::Object);
my ($self, $queue, $ruledb, $mod_group, $targets,
$msginfo, $vars, $marks) = @_;
- my $subgroups = $mod_group->subgroups($targets, 1);
+ my $dkim = $msginfo->{dkim} // {};
+ my $subgroups = $mod_group->subgroups($targets, !$dkim->{sign});
my $rulename = $vars->{RULE} // 'unknown';
PMG::Utils::remove_marks($entity);
+ if ($dkim->{sign}) {
+ eval {
+ $entity = PMG::DKIMSign::sign_entity($entity,
+ $dkim->{selector}, $msginfo->{sender}, $dkim->{sign_all});
+ };
+ syslog('warning',
+ "Could not create DKIM-Signature - disabling Signing: $@") if $@;
+ }
+
+
if ($msginfo->{testmode}) {
my $fh = $msginfo->{test_fh};
print $fh "accept from: $msginfo->{sender}\n";
use PMG::Utils;
use PMG::ModGroup;
+use PMG::DKIMSign;
use PMG::RuleDB::Object;
use base qw(PMG::RuleDB::Object);
$entity = $entity->dup();
PMG::Utils::remove_marks($entity);
+ my $dkim = $msginfo->{dkim} // {};
+ if ($dkim->{sign}) {
+ eval {
+ $entity = PMG::DKIMSign::sign_entity($entity,
+ $dkim->{selector}, $msginfo->{sender}, $dkim->{sign_all});
+ };
+ syslog('warning',
+ "Could not create DKIM-Signature - disabling Signing: $@") if $@;
+ }
+
if ($msginfo->{testmode}) {
my $fh = $msginfo->{test_fh};
print $fh "bcc from: $msginfo->{sender}\n";
$msginfo->{xforward} = $smtp->{xforward};
$msginfo->{targets} = $smtp->{to};
+ my $dkim_sign = $msginfo->{trusted} && $pmg_cfg->get('admin', 'dkim_sign');
+ if ($dkim_sign) {
+ $msginfo->{dkim}->{sign} = $dkim_sign;
+ $msginfo->{dkim}->{sign_all} = $pmg_cfg->get('admin', 'dkim_sign_all_mail');
+ $msginfo->{dkim}->{selector} = $pmg_cfg->get('admin', 'dkim_selector');
+ }
+
$msginfo->{hostname} = PVE::INotify::nodename();
my $resolv = PVE::INotify::read_file('resolvconf');