PostMaster::PreFilterModule###DomainWhitelist

Allgemein Fragen, deutsche News, Ankündigungen & Events zu Znuny
Post Reply
tingwersen
Znuny newbie
Posts: 1
Joined: 06 Oct 2025, 16:53
Znuny Version: 6.5.18
Real Name: Thomas Ingwersen
Company: Stiftung Mensch

PostMaster::PreFilterModule###DomainWhitelist

Post by tingwersen »

Hallo zusammen,

ich starte mit Znuny 6.5.18 auf einem Debian 13 Server. Zuny kann ich über den Browser erreichen und habe auch eine Testumgebung angelegt, über die E-Mails zugestellt werden. Da ich mit mehreren Domänen arbeite, möchte ich diese whitelisten und dann über einen Postmasterfilter in die entsprechende Queue lenken.
Ich scheitere bei dem Versuch unter der Systemkonfiguration einen PostMaster::PreFilterModule###DomainWhitelist einzurichten. Dieses Modul muss wohl manuell "eingebaut" werden.
Dazu habe ich unter /opt/znuny/Kernel/System/Email/ ein neues Verzeichnis /Filter angelegt und dort die Datei "DomainWhiltelist.pm" abglegt.

## DomainWhitelist.pm ##
-----------------------------------------------
package Kernel::System::Email::Filter::DomainWhitelist;

use strict;
use warnings;

sub new {
my ($Type, %Param) = @_;
return bless {}, $Type;
}

sub Run {
my ($Self, %Param) = @_;

# Liste erlaubter Domains
my @AllowedDomains = qw(
example1.de
example1.de
example1.de
);

# Hole die Absenderadresse
my $From = $Param{Email}->{From} || '';

# Extrahiere Domain
if ( $From =~ /@([\w\.-]+)/ ) {
my $Domain = lc $1;

# Prüfe, ob Domain erlaubt ist
for my $Allowed (@AllowedDomains) {
if ( $Domain eq lc $Allowed ) {
return 1; # E-Mail akzeptieren
}
}
}

# E-Mail verwerfen
return 0;
}

1;

-----------------------------------------------------------------
Unter /opt/znuny/Kernel/Config/Files habe ich ein neues Verzeichnis /Custom angelegt und hier die Datei DomainWhitelist.xml abgelegt.

## DomainWhitelist.xml ##
-------------------------------------

<?xml version="1.0" encoding="utf-8"?>
<otrs_config version="2.0" init="Changes">
<ConfigItem Name="PostMaster::PreFilterModule###DomainWhitelist" Required="0" Valid="1">
<Description>Filtert E-Mails nach erlaubten Domains.</Description>
<Group>PostMaster</Group>
<SubGroup>PreFilterModule</SubGroup>
<Setting>
<String>Kernel::System::Email::Filter::DomainWhitelist</String>
</Setting>
</ConfigItem>
</otrs_config>
-----------------------------------------------

dann

opt/znuny/bin/otrs.Console.pl Maint::Config::Rebuild
/opt/znuny/bin/otrs.Console.pl Maint::Cache::Delete

Das Modul wird mir in der Systemkonfiguration nicht angezeigt. Hat jemand eine Idee was ich falsch mache?

Gruß Thomas
paulfolkers
Znuny newbie
Posts: 52
Joined: 19 Jan 2024, 16:07
Znuny Version: 7.2.3
Real Name: Paul Folkers
Company: IT.WESER-EMS
Contact:

Re: PostMaster::PreFilterModule###DomainWhitelist

Post by paulfolkers »

Hallo Thomas,

ich würde das mal auf zwei Themen runterbrechen:

1. eigene XML-Dateien brauchen kein Custom-Verzeichnis. Die werden direkt nach Kernel/Config/Files/XML/ abgelegt. Anders ist es beim Code, dort sollten natürlich Anpassungen nach Custom/Kernel/* gelegt werden.
Wenn Du anschließend das Maint::Config::Rebuild durchührst, sollte es in der SysConfig auftauchen. Deinen Code habe ich jetzt nicht geprüft.

2. Ein evtl. einfacherer, aber nicht so schöner Weg wäre, das direkt über Postmasterfilter zu machen.
Also Admin => Postmaster-Filter => Neu:
Kopfzeilenfeld durchsuchen: "From" | nach Wert: z.B. "domain\.com|mydomain\.com|otherdomain\.com" => [x] Negieren
Kopfzeilenfeld setzen: z.B. X-OTRS-Ignore

Mit der PMF-Methode würde alles, was nicht von deinen Domains kommt, ignoriert und verworfen werden.
Founder of IT.WESER-EMS (open source-focused IT-consulting) in Oldenburg, Northern Germany.
Dedicated to Znuny, GLPI and CheckMK 8)

Znuny consulting & development via IT.WESER-EMS
Post Reply