Hallo Stefan,
Ich finde da aber kein Wort dazu, was eine Access-Map liefern muss, damit nur die restriction_class beendet wird aber die nächste smtpd_recipient_restriction abgearbeitet wird.
Diese Funktionalität existiert nicht.
Das ist mal eine eindeutige Aussage.
Die korrekte Antwort lautet: Schreibe Dir einen Policy-Service. Du bist auf einem guten Weg, Dir in den Fuß zu schießen, wenn Du das so umsetzen willst.
Das war mein Option für den Fall, dass es eben nicht so funktioniert, wie ich das mit restriction_classes vorgehabt hatte.
Ich will eine restriction_class für Greylisting haben, eine für DynIP, eine für unknown_host, ...
smtpd_restriction_classes = greylisting,dynip greylisting = check_policy_service foo:bar dynip = reject_rbl_client mumble
Allerdings soll das ganze _deselektiv_ stattfinden, also es sollen _alle_ E-Mails den jeweiligen Prüfungen unterzogen werden, _außer_ der Absender/Client (im Sinne von einlieferndem Mailserver) steht auf einer Whitelist für diese Restriction.
smtpd_recipiten_restrcitions = check_recipient_access pcre:/blubber/greylisitng.map check_recipient_access pcre:/blubber/dynip.map ...
greylisting.map: /aus@nahme.1/ dunno /aus@nahme.2/ dunno /./ greylisting
Das funktioniert, aber ich würde mich für die Ausahmen auf PCRE festlegen. Eine PCRE-MAP aus einer Hash oder MySQL-Tabelle zu erzeugen ist dabei kein Problem, aber PCRE würde ab einer gewissen Länge zur Performance-Verschwendung.
Ich sag's nochmal: Du bist auf dem allerbesten Weg, Dir einen wartungs- und verwaltungstechnischen Albtraum an die Backe zu binden.
Finde ich nicht: Eine MySQL-Datenbanktabelle als Backend in der der jeweilige Eintrag mit Flags für die einzelnen Restriktionen, die übersprungen werden sollen, versehen ist. Die dann entweder per Script in Hash oder PCRE (wobei Letzteres aus Performance-Gründen vermieden werden könnte) transformieren oder per proxy:mysql: auslesen lassen. Einmal konfiguriert ist das Ganze eigentlich unproblematisch meiner Meinung nach.
Und die Konfiguration ist ein einmaliger Mehraufwand.
Wenn Du das alles wirklich umsetzen musst, solltest Du dringend darüber nachdenken, einen Policy-Service zu schreiben.
Was ich, aufgrund der (mittlerweile durch Dich bestätigten) Einschränkungen von restriction_classes auch schon überlegt habe und letztendlich auch tun werde.
Thomas