Verteilerliste mit virtual aliases - address rewriting

Andreas Wass - Glas Gasperlmair a.wass at glas-gasperlmair.at
Mo Okt 3 11:26:06 CEST 2022


Danke Robert für deine Antwort,

seit ich folgenden Parameter in main.cf gesetzt habe

local_header_rewrite_clients = permit_mynetworks, permit_sasl_authenticated

funktioniert es zumindest mit der ersten adresse, welche ich in 
recipient_canonical_maps definiert habe

allerdings kommt dann folgender Fehler:
Oct  3 10:47:40 testmailserver postfix/cleanup[4047]: warning: 
AAF2C442103: multi-valued recipient_canonical_maps entry for 
abt-versand at meinedomain.at

so wie es aussieht, ist die Tabelle recipient_canonical_maps nur 
single-value tauglich :-(

Zur Erinnerung: meine recipient_canonical_maps sieht so aus:
abt-versand at meinedomain.at 
email1 at meinedomain.at,email2 at meinedomain.at,email3 at meinedomain.at

Mit sieve discarde ich zumindest schon mal eingehende e-mails, wenn was 
von extern kommt und der alias abt-versand at meinedomain.at verwendet wird.
Zuerst dachte ich an reject, allerding habe ich dann wieder eine 
Backscatter-Problematik, wenn ich das richtig sehe :-(


Am 03.10.2022 um 10:32 schrieb Robert Schetterer:
> Am 03.10.22 um 09:11 schrieb Andreas Wass - Glas Gasperlmair:
>> Hallo Liste,
>>
>> Hab jetzt ziemlich rumprobiert und lt. folgender readme müsste es 
>> doch möglich sein einen alias in seine einzelnen Adressen umzuschreiben:
>> Hier drin steht:
>>
>>   *
>>
>>     Replace an address by multiple addresses. For example, replace the
>>     address of an alias by the addresses listed under that alias.
>>
>> readme:
>> https://www.postfix.org/ADDRESS_REWRITING_README.html
>>
>> meine sender_canonical_maps bzw. meine recipient_canonical_maps sehen 
>> so aus:
>> abt-versand at meinedomain.at 
>> email1 at meinedomain.at,email2 at meinedomain.at,email3 at meinedomain.at
>>
>> Versende ich nun eine E-Mail an meine externe private E-Mail-Adresse 
>> und CC an abt-versand at meinedomain.at, sehe ich trotzdem nur den alias 
>> "abt-versand at meinedomain.at" nicht aber die einzelnen 3 
>> E-Mail-Adressen, die diesen alias haben.
>>
>> Keiner eine Idee?
>
> Idee schon, aber nicht mit puren postfix
> du koenntest das wohl mit einer .forward , oder mit sieve machen etc 
> evtl auch mit /usr/bin/sendmail ansonsten wuerde mir nur header_checks 
> einfallen
>
> hier ist sowas aehnliches muesst man dementsprechend abaendern
>
> https://serverfault.com/questions/643070/postfix-rewriting-sender-with-generic-header-check 
>
>
> aber das ist arges gefrickel, sorry mehr faellt mir grad nicht ein
>
> milter koennte auch funktionieren
> http://www.snertsoft.com/sendmail/milter-ahead/
>
> so wie ich das sehe kannst du die Mail vor der weiterleitung
> manipulieren oder danach, aber nicht waehrend oder mit der postfix 
> weiterleitung
>
>>
>> VG, Andi
>>
>> Am 30.09.2022 um 11:29 schrieb Andreas Wass - Glas Gasperlmair:
>>> Hallo Liste,
>>>
>>> Gleich vorab: Bitte keine Kommentare bezüglich "verwende doch 
>>> mailman" oder "schreib den alias doch ins BCC Feld"
>>>
>>> Ich habe da einige aliases in meiner DB, welche ich als 
>>> Verteilerliste verwenden möchte.
>>> virtual_alias_maps = 
>>> proxy:mysql:/etc/postfix/mysql-virtual-alias-maps.cf
>>>
>>> +-----+-----------+------------------------+------------------------+
>>> | id  | domain_id | source                 | destination |
>>> +-----+-----------+------------------------+------------------------+
>>> | 1 |         2 | abt-versand at meinedomain.at | email1 at meinedomain.at |
>>> | 2 |         2 | abt-versand at meinedomain.at | email2 at meinedomain.at |
>>> | 3 |         2 | abt-versand at meinedomain.at | email3 at meinedomain.at  |
>>> +-----+-----------+------------------------+------------------------+
>>>
>>> Das ganze funktioniert prima, allerdings hätte ich gerne, dass 
>>> Empfänger nicht sehen, dass das E-Mail an abt-versand at meinedomain.at 
>>> gesendet wurde, sondern dass das E-Mail an email1 at meinedomain.at, 
>>> email2 at meinedomain.at und email3 at meinedomain.at gesendet wurde.
>>>
>>> Ich möchte einfach verhindern, wenn ein E-Mail z.B. extern an 
>>> office at irgendeinkunde.at versendet und der alias ("Verteiler" ) 
>>> abt-versand at meinedomain.at  im Feld CC steht, dass dieser alias 
>>> (Verteiler) NICHT als solcher beim Kunden z.B. ersichtlich ist.
>>> Trotzdem möchte ich, dass der Kunde sieht, dass das E-Mail als CC 
>>> auch an email1 at meinedomain.at, email2 at meinedomain.at und 
>>> email3 at meinedomain.at gesendet wurde
>>>
>>> Kann man das mit address rewriting umsetzen und wenn ja wie?
>>>
>>> Ich hoffe, ich habe mich klar genug ausgedrückt
>>>
>>> Anbei noch meine master.cf, falls hier was zu ändern ist:
>>>
>>> # 
>>> ==========================================================================
>>> # service type  private unpriv  chroot  wakeup  maxproc command + args
>>> #               (yes)   (yes)   (no)    (never) (100)
>>> # 
>>> ==========================================================================
>>> #smtp      inet  n       -       y       -       -       smtpd
>>> smtp      inet  n       -       y       -       1 postscreen
>>> smtpd     pass  -       -       y       -       -       smtpd
>>>   -o smtpd_sasl_auth_enable=no
>>> dnsblog   unix  -       -       y       -       0 dnsblog
>>> tlsproxy  unix  -       -       y       -       0 tlsproxy
>>> submission inet n       -       y       -       -       smtpd
>>>   -o syslog_name=postfix/submission
>>>   -o smtpd_tls_security_level=encrypt
>>>   -o smtpd_sasl_auth_enable=yes
>>> #  -o smtpd_tls_auth_only=yes
>>>   -o smtpd_reject_unlisted_recipient=no
>>> #  -o smtpd_client_restrictions=$mua_client_restrictions
>>> #  -o smtpd_helo_restrictions=$mua_helo_restrictions
>>> #  -o smtpd_sender_restrictions=$mua_sender_restrictions
>>>   -o smtpd_recipient_restrictions=
>>>   -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
>>> #  -o milter_macro_daemon_name=ORIGINATING
>>> #smtps     inet  n       -       y       -       -       smtpd
>>> #  -o syslog_name=postfix/smtps
>>> #  -o smtpd_tls_wrappermode=yes
>>> #  -o smtpd_sasl_auth_enable=yes
>>> #  -o smtpd_reject_unlisted_recipient=no
>>> #  -o smtpd_client_restrictions=$mua_client_restrictions
>>> #  -o smtpd_helo_restrictions=$mua_helo_restrictions
>>> #  -o smtpd_sender_restrictions=$mua_sender_restrictions
>>> #  -o smtpd_recipient_restrictions=
>>> #  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
>>> #  -o milter_macro_daemon_name=ORIGINATING
>>> #628       inet  n       -       y       -       -       qmqpd
>>> pickup    unix  n       -       y       60      1       pickup
>>> cleanup   unix  n       -       y       -       0 cleanup
>>> qmgr      unix  n       -       n       300     1       qmgr
>>> #qmgr     unix  n       -       n       300     1       oqmgr
>>> tlsmgr    unix  -       -       y       1000?   1       tlsmgr
>>> rewrite   unix  -       -       y       -       - trivial-rewrite
>>> bounce    unix  -       -       y       -       0       bounce
>>> defer     unix  -       -       y       -       0       bounce
>>> trace     unix  -       -       y       -       0       bounce
>>> verify    unix  -       -       y       -       1       verify
>>> flush     unix  n       -       y       1000?   0       flush
>>> proxymap  unix  -       -       n       -       - proxymap
>>> proxywrite unix -       -       n       -       1 proxymap
>>> smtp      unix  -       -       y       -       -       smtp
>>> relay     unix  -       -       y       -       -       smtp
>>>         -o syslog_name=postfix/$service_name
>>> #       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
>>> showq     unix  n       -       y       -       -       showq
>>> error     unix  -       -       y       -       -       error
>>> retry     unix  -       -       y       -       -       error
>>> discard   unix  -       -       y       -       - discard
>>> local     unix  -       n       n       -       -       local
>>> virtual   unix  -       n       n       -       - virtual
>>> lmtp      unix  -       -       y       -       -       lmtp
>>> anvil     unix  -       -       y       -       1       anvil
>>> scache    unix  -       -       y       -       1       scache
>>> postlog   unix-dgram n  -       n       -       1 postlogd
>>> #
>>> # ====================================================================
>>> # Interfaces to non-Postfix software. Be sure to examine the manual
>>> # pages of the non-Postfix software to find out what options it wants.
>>> #
>>> # Many of the following services use the Postfix pipe(8) delivery
>>> # agent.  See the pipe(8) man page for information about ${recipient}
>>> # and other message envelope options.
>>> # ====================================================================
>>> #
>>> # maildrop. See the Postfix MAILDROP_README file for details.
>>> # Also specify in main.cf: maildrop_destination_recipient_limit=1
>>> #
>>> maildrop  unix  -       n       n       -       -       pipe
>>>   flags=DRXhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
>>> #
>>> # ====================================================================
>>> #
>>> # Recent Cyrus versions can use the existing "lmtp" master.cf entry.
>>> #
>>> # Specify in cyrus.conf:
>>> #   lmtp    cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
>>> #
>>> # Specify in main.cf one or more of the following:
>>> #  mailbox_transport = lmtp:inet:localhost
>>> #  virtual_transport = lmtp:inet:localhost
>>> #
>>> # ====================================================================
>>> #
>>> # Cyrus 2.1.5 (Amos Gouaux)
>>> # Also specify in main.cf: cyrus_destination_recipient_limit=1
>>> #
>>> #cyrus     unix  -       n       n       -       -       pipe
>>> #  flags=DRX user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m 
>>> ${extension} ${user}
>>> #
>>> # ====================================================================
>>> # Old example of delivery via Cyrus.
>>> #
>>> #old-cyrus unix  -       n       n       -       -       pipe
>>> #  flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} 
>>> ${user}
>>> #
>>> # ====================================================================
>>> #
>>> # See the Postfix UUCP_README file for configuration details.
>>> #
>>> uucp      unix  -       n       n       -       -       pipe
>>>   flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail 
>>> ($recipient)
>>> #
>>> # Other external delivery methods.
>>> #
>>> ifmail    unix  -       n       n       -       -       pipe
>>>   flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
>>> bsmtp     unix  -       n       n       -       -       pipe
>>>   flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop 
>>> -f$sender $recipient
>>> scalemail-backend unix -       n       n       -       2 pipe
>>>   flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store 
>>> ${nexthop} ${user} ${extension}
>>> mailman   unix  -       n       n       -       -       pipe
>>>   flags=FRX user=list 
>>> argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
>>>
>>
>
>



Mehr Informationen über die Mailingliste postfix-users