add header condition, rework conditions logic and fix logging

This commit is contained in:
2021-09-07 22:44:12 +02:00
parent 0ba60c45bc
commit f25909b34b
5 changed files with 96 additions and 79 deletions

View File

@@ -518,13 +518,14 @@ class Action:
"""Return the needs of this action."""
return self._need_body
def execute(self, milter, pretend=None):
def execute(self, milter):
"""Execute configured action."""
if pretend is None:
pretend = self.pretend
logger = CustomLogger(
self.logger, {"name": self._name, "qid": milter.qid})
return self._func(milter=milter, pretend=pretend,
logger=logger, **self._args)
if self.conditions is None or \
self.conditions.match(envfrom=milter.mailfrom,
envto=[*milter.rcpts],
headers=milter.msg.items()):
return self._func(milter=milter, pretend=self.pretend,
logger=logger, **self._args)