# Mails an mehrere Empfänger per Postfix umbiegen

## makenoob

Hallo zusammen.

Ich habe hier ein Mailgateway stehen, was Mails für mehrere Domains entgegennimmt, verarbeitet und wieder rausjagt.

Mich interessiert nun, ob ich direkt per *recipient_canonical* eine adresse an mehrere adressen weiterleiten kann. In der Manpage steht dazu nichts und per logical line

```

info@domain1.tld   user1@domain2.tld

                   user2@domain3.tld

```

gehts leider auch nicht (erkennt zwar, dass da wohl mehrere einträge sind, interessiert aber wohl nicht weiter, da die mail auch nur an user1@domain2.tld zugestellt wird).

Ich würde das gerne so machen, da die ganze domain an verschiedene user weitergeleitet wird und ich dadurch nur die *recipient_canonical*-datei verwalten müsste.

Vielen Dank im voraus.

Marc

----------

## dertobi123

 *makenoob wrote:*   

> 
> 
> ```
> 
> info@domain1.tld   user1@domain2.tld
> ...

 

Wenn alle Mail die an info@domain1.tld reinkommt an die beiden user1 und user2 weitergeleitet werden soll (so verstehe ich das grade, man korrigiere mich ...), müsste ein Eintrag in /etc/postfix/virtual_alias_maps (oder /etc/postfix/virtuals, je nach Konfiguration) her. Wichtig ist alles in eine Zeile zu setzen, mehrere Adressaten durch Kommata getrennte:

```

info@domain1.tld    user1@domain2.tld, user2@domain3.tld

```

----------

## makenoob

Das Problem ist, dass ich die "virtual_alias_maps" per mysql verwalte. Würde dieser Eintrag auch in der "recipient_canonical_maps" funzen? Ich würde das halt gerne auf dem Mailgate schon umleiten, damit die Mails nicht erst noch intern an einen anderen Computer (der mit den Postfächern) gesendet werden und von dort weitergeleitet werden, so, wie ich es momentan realisiere. Ich hätte die Konfiguration gerne zentral und nicht über zwei Computer verteilt.

Jedenfalls vielen Dank.

Marc

----------

## dertobi123

Also: Grade mal spasseshalber getestet, geht. Aber: canonicals sind dafür nicht gedacht, dementsprechend gibts eine Warnmeldung: "multi-valued canonical_maps entry". Die Frage wäre aus meiner Sicht, ob man das so wirklich will.

----------

## makenoob

Entschuldige bitte die sehr späte Antwort.

Ich habe das gerade bei mir auch nochmal getestet, und laut dem log verschickt er in dieser konfig nur an einen user (hier in auszügen, bei bedarf kann ich auch den ganzen log-eintrag zu dieser mail posten):

```

<snip>

Nov 16 13:06:18 mail postfix/smtpd[10043]: >>> CHECKING RECIPIENT MAPS <<<

Nov 16 13:06:18 mail postfix/smtpd[10043]: ctable_locate: leave existing entry key info@domain1.tld

Nov 16 13:06:18 mail postfix/smtpd[10043]: maps_find: recipient_canonical_maps: hash:/etc/postfix/recipient_canonical(0,100): info@domain1.tld = user1@domain2.tld, user2@domain3.tld

Nov 16 13:06:18 mail postfix/smtpd[10043]: mail_addr_find: info@domain1.tld -> user1@domain2.tld, user2@domain3.tld

Nov 16 13:06:18 mail postfix/smtpd[10043]: connect to subsystem public/cleanup

Nov 16 13:06:18 mail postfix/smtpd[10043]: public/cleanup socket: wanted attribute: queue_id

Nov 16 13:06:18 mail postfix/smtpd[10043]: input attribute name: queue_id

Nov 16 13:06:18 mail postfix/smtpd[10043]: input attribute value: 39AF28C4088

Nov 16 13:06:18 mail postfix/smtpd[10043]: public/cleanup socket: wanted attribute: (list terminator)

Nov 16 13:06:18 mail postfix/smtpd[10043]: input attribute name: (end)

Nov 16 13:06:18 mail postfix/smtpd[10043]: send attr flags = 50

Nov 16 13:06:18 mail postfix/smtpd[10043]: 39AF28C4088: client=unknown[172.16.0.1]

Nov 16 13:06:18 mail postfix/smtpd[10043]: > unknown[172.16.0.1]: 250 Ok

Nov 16 13:06:18 mail postfix/cleanup[10045]: warning: 39AF28C4088: multi-valued recipient_canonical_maps entry for info@domain1.tld

<snip>

Nov 16 13:06:18 mail postfix/cleanup[10045]: warning: 39AF28C4088: multi-valued recipient_canonical_maps entry for info@domain1.tld

Nov 16 13:06:18 mail postfix/smtpd[10043]: input attribute name: status

Nov 16 13:06:18 mail postfix/smtpd[10043]: input attribute value: 0

Nov 16 13:06:18 mail postfix/qmgr[10041]: 39AF28C4088: from=<absender@domain2.tld>, size=1196, nrcpt=1 (queue active)

Nov 16 13:06:18 mail postfix/smtpd[10043]: public/cleanup socket: wanted attribute: reason

Nov 16 13:06:18 mail postfix/smtpd[10043]: input attribute name: reason

Nov 16 13:06:18 mail amavis[9905]: (09905-07) ESMTP::10024 /var/run/amavis/amavis-20041116T124443-09905: <absender@domain2.tld> -> <user1@domain2.tld> Received: SIZE=1196 from mail.adandbreakfast.com ([172.16.1.201]) by localhost (mail.adandbreakfast.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 09905-07 for <user1@domain2.tld>; Tue, 16 Nov 2004 13:06:18 +0100 (CET)

Nov 16 13:06:18 mail postfix/smtpd[10043]: input attribute value: (end)

Nov 16 13:06:18 mail postfix/smtpd[10043]: public/cleanup socket: wanted attribute: (list terminator)

Nov 16 13:06:18 mail postfix/smtpd[10043]: input attribute name: (end)

Nov 16 13:06:18 mail amavis[9905]: (09905-07) Checking: <absender@domain2.tld> -> <user1@domain2.tld>

<snip>

Nov 16 13:06:20 mail amavis[9905]: (09905-07) SPAM-TAG, <absender@domain2.tld> -> <user1@domain2.tld>, No, hits=-4.9 tagged_above=-999.0 required=3.0 tests=BAYES_00

Nov 16 13:06:20 mail amavis[9905]: (09905-07) FWD via SMTP: [127.0.0.1]:10025 <absender@domain2.tld> -> <user1@domain2.tld>

<snip>

Nov 16 13:06:20 mail amavis[9905]: (09905-07) Passed, <absender@domain2.tld> -> <user1@domain2.tld>, Message-ID: <03F4A5036730CD429E851B64DE14A93D1C0B9B@sendeserver.domain2.tld>, Hits: -4.9

Nov 16 13:06:20 mail amavis[9905]: (09905-07) TIMING [total 2139 ms] - SMTP EHLO: 8 (0%), SMTP pre-MAIL: 1 (0%), SMTP pre-DATA-flush: 17 (1%), SMTP DATA: 25 (1%), body hash: 1 (0%), mime_decode: 43 (2%), get-file-type: 20 (1%), decompose_part: 2 (0%), parts: 0 (0%), AV-scan-1: 1634 (76%), SA msg read: 3 (0%), SA parse: 3 (0%), SA check: 290 (14%), fwd-connect: 15 (1%), fwd-mail-from: 3 (0%), fwd-rcpt-to: 5 (0%), write-header: 7 (0%), fwd-data: 0 (0%), fwd-data-end: 52 (2%), fwd-rundown: 3 (0%), unlink-1-files: 8 (0%), rundown: 1 (0%)

Nov 16 13:06:20 mail postfix/smtp[10046]: 39AF28C4088: to=<user1@domain2.tld>, orig_to=<info@domain1.tld>, relay=127.0.0.1[127.0.0.1], delay=3, status=sent (250 2.6.0 Ok, id=09905-07, from MTA: 250 Ok: queued as 763268C4093)

Nov 16 13:06:20 mail postfix/qmgr[10041]: 39AF28C4088: removed

Nov 16 13:06:20 mail postfix/smtp[10050]: 763268C4093: to=<user1@domain2.tld>, relay=172.16.0.208[172.16.0.208], delay=0, status=sent (250 2.6.0  <03F4A5036730CD429E851B64DE14A93D1C0B9B@sendeserver.domain2.tld> Queued mail for delivery)

Nov 16 13:06:20 mail postfix/qmgr[10041]: 763268C4093: removed

```

/etc/postfic/recipient_canonical:

```

<snip>

info@domain1.tld                        user1@domain2.tld, user2@domain3.tld

<snip>

```

Mir ist allerdings ein Rätsel wo die mail entweder verschütt geht oder nicht weitergeleitet wird.

Wie gesagt, ich hätte die ganzen Weiterleitungen gerne in einer Datei und somit zentral.

Vielleicht sieht ja jemand dort was, was mir entgangen ist.

thx.

Gruß

Marc

----------

## makenoob

*bump*

----------

## toskala

also ich erledige das mittels aliasen.

foobar@bla.de: barfoo@blubb.de, blabla@foobar.de

kannst entweder in sql erledigen, oder im alias file. also wenn es dir rein ums weiterleiten einer mailadresse an verschiedene empfänger geht.

also root: ich, er, sie dafür isses gedacht.

----------

## makenoob

ja, das wäre zwar eine idee. Wird aber nicht funktionieren, weil ich local-delivery auf der kiste ausgestellt habe, da die konfig sonst so nicht hinhaut (hatte schonmal was mit dem alias versucht und es klappte aufgrund des abgeschlalteten local nicht).

gruß

marc

ps: hier mal ein "postconf -n":

```

alias_database = hash:/etc/mail/aliases

alias_maps = hash:/etc/mail/aliases

allow_percent_hack = no

command_directory = /usr/sbin

config_directory = /etc/postfix

content_filter = smtp-amavis:[127.0.0.1]:10024

daemon_directory = /usr/lib/postfix

debug_peer_level = 2

default_destination_concurrency_limit = 10

home_mailbox = .maildir/

html_directory = no

inet_interfaces = $myhostname

local_destination_concurrency_limit = 2

local_recipient_maps =

local_transport = error:local mail delivery is disabled on this machine

mail_spool_directory = /var/spool/mail/

mailq_path = /usr/bin/mailq

manpage_directory = /usr/share/man

message_size_limit = 52428800

mydestination = /etc/postfix/mydestination

myhostname = mail.adandbreakfast.com

mynetworks = 172.16.0.0/24, 172.16.1.0/24, 127.0.0.0/8

newaliases_path = /usr/bin/newaliases

proxy_interfaces = 172.16.1.1

readme_directory = /usr/share/doc/postfix-2.1.3/readme

recipient_canonical_maps = hash:/etc/postfix/recipient_canonical

sample_directory = /etc/postfix

sendmail_path = /usr/sbin/sendmail

setgid_group = postdrop

smtpd_helo_required = yes

smtpd_recipient_restrictions = reject_non_fqdn_sender,  reject_non_fqdn_recipient,      reject_unknown_sender_domain,   reject_unknown_recipient_domain,     permit_mynetworks,       reject_unauth_destination,      reject_unauth_pipelining,       reject_invalid_hostname,        reject_non_fqdn_hostname

swap_bangpath = no

transport_maps = hash:/etc/postfix/transport

unknown_local_recipient_reject_code = 550

```

----------

