Ausnahme für externen Relay-Server

Hallo allerseits,

ich habe über die UCS Variable mail/relayhost den Relay server zum versenden aktiviert. Funktioniert sehr gut.
Ich möchte jetzt aber eine im eigenen Netz befindliche Domäne (extra Archivhost) verwende, um über mail/archivefolder die Mails zu archivieren.
Zur Zeit versucht der Mailserevr auch die zu archivierenden Mails über den Relayhost zu senden. Dieser sollte also vom Relay ausgenommen sein.

Wie kann ich das erreichen?

Danke

Wolfgang

Hallo,

Postfix gibt alles an den Relayhost weiter, wofür es nicht selbst verantwortlich ist. Damit sollte keine Mail an den Relayhost gehen, deren Empfängeradresse intern ist. Postfix hat dazu die Variable ‘mydestination’ in main.cf, unter UCS wird diese durch die UCR Variable ‘mail/postfix/mydestination’ gefüllt. Wenn die Variable nicht gesetzt ist, wird der Standard

mydestination = $myhostname, localhost.$mydomain, localhost

eingesetzt; wenn man also hier selber noch Domains nachtragen will, sollten diese drei Einträge erhalten bleiben.

Was ich hier geschrieben habe, muß allerdings nicht unbedingt zutreffen, je nachdem, ob und wenn ja welche Groupware benutzt wird und ob sie auf dem gleichen Host oder woanders läuft.

viele Grüße
Frank Greif.

Vielen Dank ich habe das gleich mal ausprobiert.

Der Server hat jetzt den Empfänger der Archivmails als lokalen Benutzer angelegt und stellt die zu archivierenden Mails an diesen durch und leitet diese aber nicht an den Archivhost weiter (relay:127.0.0.1).
interne Domäne: ibmmn.local
mail/archivefolder : mailarchiv@mmn-diskstation.ibmmn.local
mail/postfix/mydestination : $myhostname, localhost.$mydomain, localhost, mmn-diskstation.$mydomain

wie sage ich Ihm denn jetzt, dass für die Domain mmn-diskstation.ibmmn.local die mails nicht lokal zuzustellen sind sondern an den angegebenen Host?

Hallo,

Ausnahmen zu der Regel “mydestination” (der eigene Host ist für das Empfangen aller Mails verantwortlich, die an “mydestination” adressiert sind) stehen in der ‘transport’ Tabelle von Postfix. Im UCS wird diese auch durch eine LDAP Abfrage gefüllt. Man findet das in /etc/postfix/ldap.transport:

# Warnung: Diese Datei wurde automatisch generiert und kann durch
#          univention-config-registry überschrieben werden.
#          Bitte bearbeiten Sie an Stelle dessen die folgende(n) Datei(en):
# 
#       /etc/univention/templates/files/etc/postfix/ldap.transport.d/10_base
# 
#
# LDAP Transport for multilocation support
# if mail shall not be delivered locally then send it to univentionMailHomeServer
#

search_base = dc=domain,dc=de
query_filter = (&(mailPrimaryAddress=%s)(univentionMailHomeServer=*)(!(univentionMailHomeServer=post.domain.de)))
result_attribute = univentionMailHomeServer
result_format = smtp:[%s]

Also genügt es, wenn es im UCS ein Nutzerobjekt gibt, das die Mailadresse mailarchiv@mmn-diskstation.ibmmn.local hat, und bei dem als “Mail Home Server” der abweichende Empfängerhost eingetragen ist. Ob das bei Ihnen funktioniert, hängt davon ab, ob dieser Host dem UCS bekannt ist und das Attribut “UniventionService: SMTP” trägt. Wenn Sie also auf der Management Console den Nutzer aufklappen und unter “[Erweitert] -> Mail” keinen Homeserver auswählen können, geht es immer noch zu Fuß:

udm users/user list | grep -Fi 'uid=mailarchiv'

liefert Ihnen den DN des Nutzers, und

udm users/user modify --dn=uid=mailarchiv,... --set mailHomeServer=mmn-diskstation.ibmmn.local

setzt die Eigenschaft. Danach sollten Sie Postfix auch fragen können, ob es funktioniert:

postmap -q mailarchiv@mmn-diskstation.ibmmn.local ldap:/etc/postfix/ldap.transport

sollte dann den betreffenden Host zurückliefern; um das ‘postfix reload’ sollte sich das System schon selbst gekümmert haben.

viele Grüße
Frank Greif.

Vielen Dank! Ich habe die entsprechenden Schritte umgesetzt. ABER: Die Mails kommen einfach nicht beim Zielserver an.
Hier erst mal das Protokoll des Versands einer Testmail:

Admin@mmnucs:~$ sudo service postfix restart [ ok ] Stopping Postfix Mail Transport Agent: postfix. [ ok ] Starting Postfix Mail Transport Agent: postfix. Admin@mmnucs:~$ sudo tail -f /var/log/mail.log Feb 20 09:59:43 mmnucs postfix/cleanup[557]: BD33C1283BDA: message-id=<30503a74-0549-4331-a7ff-33d7b11769c5@mmn-ing.de> Feb 20 09:59:43 mmnucs postfix/smtpd[561]: disconnect from localhost[127.0.0.1] Feb 20 09:59:43 mmnucs postfix/qmgr[528]: BD33C1283BDA: from=<w.schanz@mmn-ing.de>, size=1191, nrcpt=2 (queue active) Feb 20 09:59:43 mmnucs amavis[31883]: (31883-03) Passed CLEAN {RelayedOutbound}, LOCAL [192.168.2.28]:49049 [192.168.2.28] <w.schanz@mmn-ing.de> -> <wschanz@gmx.net>,<mailarchiv@mmn-diskstation.ibmmn.local>, Queue-ID: 6A99D1283BD8, Message-ID: <30503a74-0549-4331-a7ff-33d7b11769c5@mmn-ing.de>, mail_id: TFvnc6gZaHwP, Hits: -0.999, size: 774, queued_as: BD33C1283BDA, 295 ms Feb 20 09:59:43 mmnucs postfix/smtp[558]: 6A99D1283BD8: to=<wschanz@gmx.net>, relay=127.0.0.1[127.0.0.1]:10024, delay=0.38, delays=0.06/0.02/0/0.3, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as BD33C1283BDA) Feb 20 09:59:43 mmnucs postfix/smtp[558]: 6A99D1283BD8: to=<mailarchiv@mmn-diskstation.ibmmn.local>, relay=127.0.0.1[127.0.0.1]:10024, delay=0.38, delays=0.06/0.02/0/0.3, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as BD33C1283BDA) Feb 20 09:59:43 mmnucs postfix/qmgr[528]: 6A99D1283BD8: removed Feb 20 09:59:43 mmnucs postfix/lmtp[562]: BD33C1283BDA: to=<mailarchiv@mmn-diskstation.ibmmn.local>, relay=127.0.0.1[127.0.0.1]:2003, delay=0.19, delays=0.03/0.01/0.07/0.09, dsn=2.1.5, status=sent (250 2.1.5 mailarchiv@mmn-diskstation.ibmmn.local Ok) Feb 20 09:59:45 mmnucs postfix/smtp[563]: BD33C1283BDA: to=<wschanz@gmx.net>, relay=sfwdallmx.t-online.de[194.25.134.110]:25, delay=1.3, delays=0.03/0.02/0.94/0.34, dsn=2.0.0, status=sent (250 2.0.0 Message accepted.) Feb 20 09:59:45 mmnucs postfix/qmgr[528]: BD33C1283BDA: removed
Hier kann ich keinen Fehler feststellen. Die Mail beim Empfänger kommt an, im mailarchiv-server kommt nichts an. Die Mails werden in das Postfach des Benutzers mailarchiv auf dem UCS-Server abgelegt.
Außerdem habe ich vom UCS-Server den Empfangsserver (mailarchiv) mit Telnet getestet. Ich kann per Hand eine Mail versenden.

[code]Admin@mmnucs:~$ telnet mmn-diskstation.ibmmn.local 25
Trying 192.168.2.22…
Connected to mmn-diskstation.ibmmn.local.
Escape character is ‘^]’.
220 mmn-diskstation.ibmmn.local ESMTP Postfix
EHLO mmnucs.ibmmn.local
250-mmn-diskstation.ibmmn.local
250-PIPELINING
250-SIZE 41943040
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
MAIL FROM:w.schanz@mmn-ing.de
250 2.1.0 Ok
RCPT TO:mailarchiv@mmn-diskstation.ibmmn.local
250 2.1.5 Ok
DATA
354 End data with .
Subject: Testbbb

Das ist ein TTTT

.
250 2.0.0 Ok: queued as CD24D835EF
QUIT
221 2.0.0 Bye
Connection closed by foreign host.[/code]

Wie bekomme ich die Mails jetzt auf den mailrchiv-Server? Leider bin ich jetzt mit meinem Latein schon wieder am Ende …

Danke für alle Tipps.

Wolfgang

Hallo,

Hier handelt es sich wohl um einen Verständnisfehler meinerseits…

Offensichtlich wird die Regel “lokal oder nicht lokal” (mit Hilfe der “mydestination” Variable) zuerst angewendet, so daß die Mail in der lokalen Mailbox landet:

[quote]
Feb 20 09:59:43 mmnucs postfix/lmtp[562]: BD33C1283BDA: to=mailarchiv@mmn-diskstation.ibmmn.local, relay=127.0.0.1[127.0.0.1]:2003, delay=0.19, delays=0.03/0.01/0.07/0.09, dsn=2.1.5, status=sent (250 2.1.5 mailarchiv@mmn-diskstation.ibmmn.local Ok)[/quote]

und die Transportregel (siehe Postmap-Befehl weiter oben) kommt gar nicht zur Anwendung. Wenn Sie die Archivdomain jetzt wieder aus der “mydestination” Variable streichen, sollte es funktionieren.

viele Grüße
Frank Greif.

Kleiner Nachtrag: Es war so wie bereits angekündigt, die Drop-down Liste bei Mail Home Server war leer. Habe diesen wie angegeben über die Kommandozeile hinzugefügt und auch den Eintrag abgefragt. Alles wie gewünscht vorhanden.
Die Archivdomain hatte ich schon aus der Mydestination-Variable herausgenommen, da der Server dies als Warnung protokollierte.
Leider hat das nichts daran geändert, dass die Mails in der lokalen Mailbox des Benutzers mailarchiv landen.

Hallo,

die Warnung des Postfix betreffs der Mydestination Variable hätte ich gern noch gesehen: was hat ihm da nicht gefallen?

Dann fiele mir auf Verdacht nur noch ein ‘postfix reload’ ein (wenn Sie das nicht schon gemacht haben), ansonsten müßte ich noch etwas tiefer in der Postfix-Doku graben, wie man die betreffende Ausnahme hinbekommen kann.

viele Grüße
Frank Greif.

Hier noch mal das Log mit gesetzter Variable:

Feb 20 13:19:55 mmnucs postfix/master[6359]: daemon started -- version 2.9.6, configuration /etc/postfix Feb 20 13:21:02 mmnucs postfix/smtpd[6421]: connect from unknown[192.168.2.28] Feb 20 13:21:02 mmnucs postfix/smtpd[6421]: 4AA711283F1F: client=unknown[192.168.2.28] Feb 20 13:21:02 mmnucs postfix/cleanup[6425]: 4AA711283F1F: message-id=<b72db6da-fa99-291b-3a93-35f8131d8338@mmn-ing.de> Feb 20 13:21:02 mmnucs postfix/qmgr[6367]: 4AA711283F1F: from=<w.schanz@mmn-ing.de>, size=714, nrcpt=2 (queue active) Feb 20 13:21:02 mmnucs postfix/smtpd[6421]: disconnect from unknown[192.168.2.28] Feb 20 13:21:02 mmnucs postfix/smtpd[6429]: connect from localhost[127.0.0.1] Feb 20 13:21:02 mmnucs postfix/smtpd[6429]: 8D4E31283F26: client=localhost[127.0.0.1], orig_queue_id=4AA711283F1F, orig_client=unknown[192.168.2.28] Feb 20 13:21:02 mmnucs postfix/cleanup[6425]: 8D4E31283F26: message-id=<b72db6da-fa99-291b-3a93-35f8131d8338@mmn-ing.de> Feb 20 13:21:02 mmnucs postfix/smtpd[6429]: disconnect from localhost[127.0.0.1] Feb 20 13:21:02 mmnucs postfix/qmgr[6367]: 8D4E31283F26: from=<w.schanz@mmn-ing.de>, size=1153, nrcpt=1 (queue active) Feb 20 13:21:02 mmnucs postfix/smtpd[6429]: connect from localhost[127.0.0.1] Feb 20 13:21:02 mmnucs postfix/trivial-rewrite[6424]: warning: do not list domain mmn-diskstation.ibmmn.local in BOTH mydestination and virtual_mailbox_domains Feb 20 13:21:02 mmnucs postfix/smtpd[6429]: 8FC8C1283F27: client=localhost[127.0.0.1], orig_queue_id=4AA711283F1F, orig_client=unknown[192.168.2.28] Feb 20 13:21:02 mmnucs postfix/cleanup[6425]: 8FC8C1283F27: message-id=<b72db6da-fa99-291b-3a93-35f8131d8338@mmn-ing.de> Feb 20 13:21:02 mmnucs postfix/qmgr[6367]: 8FC8C1283F27: from=<w.schanz@mmn-ing.de>, size=1355, nrcpt=1 (queue active) Feb 20 13:21:02 mmnucs postfix/smtpd[6429]: disconnect from localhost[127.0.0.1] [color=#BF4080]Feb 20 13:21:02 mmnucs postfix/trivial-rewrite[6424]: warning: do not list domain mmn-diskstation.ibmmn.local in BOTH mydestination and virtual_mailbox_domains[/color] Feb 20 13:21:02 mmnucs amavis[3589]: (03589-02) Passed CLEAN {RelayedInternal,RelayedOutbound}, LOCAL [192.168.2.28]:50912 [192.168.2.28] <w.schanz@mmn-ing.de> -> <wschanz@gmx.net>,<mailarchiv@mmn-diskstation.ibmmn.local>, Queue-ID: 4AA711283F1F, Message-ID: <b72db6da-fa99-291b-3a93-35f8131d8338@mmn-ing.de>, mail_id: XZ-nWOPVBrxY, Hits: -0.999, size: 714, queued_as: 8D4E31283F26/8FC8C1283F27, 246 ms Feb 20 13:21:02 mmnucs postfix/smtp[6426]: 4AA711283F1F: to=<wschanz@gmx.net>, relay=127.0.0.1[127.0.0.1]:10024, delay=0.32, delays=0.06/0.02/0/0.25, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 8D4E31283F26) Feb 20 13:21:02 mmnucs postfix/smtp[6426]: 4AA711283F1F: to=<mailarchiv@mmn-diskstation.ibmmn.local>, relay=127.0.0.1[127.0.0.1]:10024, delay=0.32, delays=0.06/0.02/0/0.25, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 8D4E31283F26) Feb 20 13:21:02 mmnucs postfix/qmgr[6367]: 4AA711283F1F: removed Feb 20 13:21:02 mmnucs postfix/local[6431]: 8FC8C1283F27: to=<mailarchiv@mmn-diskstation.ibmmn.local>, relay=local, delay=0.03, delays=0.01/0.01/0/0.01, dsn=2.0.0, status=sent (delivered to mailbox) Feb 20 13:21:02 mmnucs postfix/qmgr[6367]: 8FC8C1283F27: removed Feb 20 13:21:03 mmnucs postfix/smtp[6430]: 8D4E31283F26: to=<wschanz@gmx.net>, relay=sfwdallmx.t-online.de[194.25.134.110]:25, delay=1.1, delays=0.02/0.02/0.74/0.29, dsn=2.0.0, status=sent (250 2.0.0 Message accepted.) Feb 20 13:21:03 mmnucs postfix/qmgr[6367]: 8D4E31283F26: removed

Freundliche Grüße

Wolfgang

Hallo,

Die Fehlermeldung weist darauf hin, daß die Archivdomain in ‘virtual_mailbox_domains’ enthalten ist. Das ist aus seiner Sicht doppelt: gleich zwei unterschiedliche Variablen verlangen, daß der aktuelle Host für die Archivdomain verantwortlich ist – das ist nicht nötig.

Also dort gehört sie auf keinen Fall hinein, wir wollen ja genau das Umgekehrte: ein anderer Host soll diese Mails bekommen. Wenn Sie das über die UCR-Variable ‘mail/postfix/virtual/mailbox/domains’ eingetragen hatten: dann bitte dort wieder rausnehmen.

viele Grüße
Frank Greif.

Ja das dachte ich auch. Ich habe die Domain bei Einstellungen: Domäne / E-Mail hinzugefügt.
Wenn ich das nicht mache kann ich den Benutzer mailarchiv nicht zu Kopano hinzufügen: Fehlermeldung: Das LDAP Objekt konnte nicht gespeichert werden: Der Domänenteil der primären Mailadresse ist nicht in der Liste der eingerichteten Maildomänen enthalten.

Hallo,

Ich denke, in Kopano hat dieser zusätzliche Account nichts verloren: seine Mail soll ja nicht im Kopano landen. Eigentlich klar, daß sich Kopano dann diese Domain “sichert”, so daß die Mail nicht mehr zum Archivserver geht. Also diese Dinge bitte wieder rückgängig machen, sowohl den Nutzer als auch die Domain austragen.

Ich hatte gemeint, einen “normalen” Nutzer anlegen im Univention Directory Manager, und auf keinen Fall ankreuzen, daß er ein Kopano-User ist. Dann kann er doch trotzdem eine Mailadresse haben. Danach mit dem UDM-Befehl den MailHomeServer auf den Archiv-Host setzen. Dann könnte es eigentlich funktionieren.

viele Grüße
Frank Greif.

Also ich habs endlich hinbekommen. Vielen Dank an Frank! Hast mich auf die richtige Spur gebracht.

Lösung:
UCS - Variablen:
[] mail/archivefolder: mailarchiv@mmn-diskstation.ibmmn.local
[
] mail/maps/transport/*: mmn-diskstation.ibmmn.local smtp:[mmn-diskstation.ibmmn.local] gefunden bei: http://wiki.univention.de/index.php?title=Mailrelay_unter_UCS

Ein Eintrag beim Benutzer zu MailHomeServer ist nicht notwendig. Ebenso kein Eintrag bei mail/hosteddomains bzw. bei Einstellungen: Domäne / E-Mail

mfg Wolfgang

So nachdem ich auch drei Stunden rumprobiert habe.

Reihenfolge

DNS Zone piler.sysops.local angelegt, IP eingetragen und mx auf piler.sysops.local
User anlegen mit E-Mailadresse (wir nutzen das tolle und freie mailpiler.org) Beispiel piler@piler.sysops.local
ucr set mail/maps/transport/='piler.sysops.local smtp:piler.sysops.local‘
service postfix reload

Danach sollte auf dem Mailarchiv von der IP des UCS kommen die Mail eintrudeln!

Mastodon