sipsip
Goto Top

Postfix Weiterleitung wenn Sender gleich .?

Hallo zusammen

Ich versuche gerade eine Weiterleitung auf unserem Postfix Server einzurichten. Mir ist bereits bekannt, dass man dies in der "virtual_alias_maps" definiert.
Jedoch möchte ich nicht alle Mails die an info@domain.ch gesendet werden weiterleiten.
Ich möchte nur die Weiterleiten, die von einer bestimmten Adresse kommen z.B. "absender@test.ch" an eine externe Adresse weiterleiten.

Nach meiner Suche bei Google bin ich mir nicht mehr ganz sicher, ob dies überhaupt mit Postfix möglich ist oder ob ich nicht eine weitere Software benötige.
Kennt sich jemand von euch damit aus?
Falls ich eine weitere Software benötige, wäre ich froh um Vorschläge und auf was ich mich achten müsste.

PS: auf dem Server kommen täglich um die 1'000 Mails rein.

Danke und Grüsse

Content-ID: 315954

Url: https://administrator.de/contentid/315954

Ausgedruckt am: 22.11.2024 um 20:11 Uhr

colinardo
Lösung colinardo 22.09.2016 aktualisiert um 16:02:33 Uhr
Goto Top
Hallo SIPSIP,
das kannst du mit den header_checks machen
Hier ein Beispiel wie man etwa Mails mit bestimmtem Subject weiterleiten lässt
https://major.io/2007/07/01/redirect-e-mails-in-postfix-based-on-subject ...
Einfach deinen Pattern auf den From: Header loslassen, fertig.


Grüße Uwe
SIPSIP
SIPSIP 23.09.2016 um 09:35:14 Uhr
Goto Top
Danke für deine Antwort, habe das soweit eingerichtet. Leider funktioniert die Weiterleitung noch nicht, siehst du evtl. etwas in meiner main.cf, dass die Weiterleitung verhindert?

Mit dem Befehl postmap -q - regexp:/etc/postfix/header_checks möchte ich das bei der Menge der Mails lieber nicht testen....

main.cf
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

append_dot_mydomain = no

readme_directory = no

smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt
smtpd_tls_key_file = /etc/ssl/private/smtpd.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination
myhostname = mail.edl.ch
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = domain1.ch, domain2.ch, domain3.ch, domain4.ch
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 172.18.8.0/23 192.168.96.0/20 172.16.0.0/16
mailbox_size_limit = 0
message_size_limit = 400000000
recipient_delimiter = +
inet_interfaces = all
home_mailbox = Maildir/
mailbox_command = /usr/bin/maildrop -d ${USER}
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_tls_auth_only = no
smtp_tls_note_starttls_offer = yes
smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
inet_protocols = ipv4
virtual_alias_maps = hash:/etc/postfix/virtual_aliases

header_checks = regexp:/etc/postfix/header_checks
canonical_maps = pcre:/etc/postfix/canonical
sender_canonical_maps = pcre:/etc/postfix/sender_canonical
local_header_rewrite_clients = permit_mynetworks

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_path = smtpd
broken_sasl_auth_clients = yes

smtpd_recipient_restrictions =
   permit_sasl_authenticated,
   permit_mynetworks,
   reject_unauth_destination

header_checks
#/etc/postfix/header_checks
/^From: *meinemail@domain.ch*/ REDIRECT info@domain2.ch

Grüsse
colinardo
Lösung colinardo 23.09.2016 aktualisiert um 10:43:01 Uhr
Goto Top
Zitat von @SIPSIP:
header_checks
#/etc/postfix/header_checks
> /^From: *meinemail@domain.ch*/ REDIRECT info@domain2.ch
> 
Hier liegt dein Fehler. Das Problem hier ist, dass du hier keine richtige Regular-Expression-Syntax im Ausdruck verwendest!
also muss das korrigiert so lauten
/^From:.*meinemail@domain\.ch.*/ REDIRECT info@domain2.ch
Zu Sonderzeichen der Regex-Syntax siehe bitte: Regular Expressions Tutorial

Grüße Uwe
SIPSIP
SIPSIP 23.09.2016 um 12:25:56 Uhr
Goto Top
Vielen Dank für deine Hilfe Uwe.
Habe zuvor auch etwas in der Art versucht, jedoch waren bei mir wohl ein paar Sonderzeichen falsch....

Sehe ich das richtig, dass die Mails nun gar nicht mehr auf meinem Mailserver abgelegt sind?
Gäbe es den eine Möglichkeit, dass diese trotzdem noch in meinem Postfach abgelegt bleiben?

Grüsse
colinardo
colinardo 23.09.2016 aktualisiert um 13:16:31 Uhr
Goto Top
Ich bin jetzt gerade nicht mehr so aktuell in postfix aber z.B. mit maildrop eine Kopie der Mail weiterleiten und im Postfach zustellen lassen.
http://serverfault.com/questions/151262/how-can-i-use-maildrop-to-forwa ...

Oder via BCC Action die andere Adresse hinzufügen, siehe RFC Link oben.
SIPSIP
SIPSIP 23.09.2016 um 13:22:26 Uhr
Goto Top
Vielen Dank, werde mir das mal anschauen.
SIPSIP
SIPSIP 23.09.2016 um 16:54:50 Uhr
Goto Top
Habe nun dank deinen Tipps eine Lösung gefunden. Hier meine Lösung für alle die das evtl. einmal brauchen könnten.

Auf dem Server ist zusätzlich zu Postfix auch Maildrop installiert, welcher momentan zum filtern und archivieren von Mails verwendet wird.
Nun konnte ich damit auch die Weiterleitung einrichten, so dass auch eine Kopie auf dem System bleibt.

Der Filter ist eigentlich recht simpel:
if (/^From:.*name@domain\.ch*/:h)
{
        cc "!info@domain2.ch"  
}

Der Filter ist pro Benutzer angelegt. Alles was vom Sender "name@domain.ch" im Postfach ankommt, wird eine Kopie an "info@domain2.ch" weitergeleitet.

Grüsse
colinardo
Lösung colinardo 23.09.2016 aktualisiert um 20:25:38 Uhr
Goto Top
Dein Regex hat wieder einen Fehler, hinter dem ch fehlt noch ein Punkt face-wink

Schönes Wochenende