transport funktioniert nicht
Markus Winkler
ml at irmawi.de
Do Jan 5 21:37:27 CET 2023
Hallo Bernd,
On 05.01.23 17:56, Bernd Blana via Dovecot wrote:
> es hat funktioniert. Die Mail kommt an.
[...]
> dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as C319910142A)
das freut mich - vielen Dank fürs Ändern, Testen und die Infos. :)
> Mit dem Befehl:
>
> postmap -q kamera at nazareth-norddeich.de
> mysql:/opt/postfix/conf/sql/mysql_virtual_mailbox_maps.cf
>
> habe ich Probleme, ich habe den Befehl und Pfad angepasst:
>
> /opt/mailcow-dockerized# docker-compose exec postfix-mailcow postmap -q
> kamera at nazareth-norddeich.de
> mysql:/opt/mailcow-dockerized/data/conf/postfix/sql/mysql_virtual_mailbox_maps.cf
Der von mir genannte Pfad stammte halt aus Deiner main.cf - daher ging ich
mal davon aus, dass der korrekt ist. ;-)
> da bekomme ich, obwohl in dem Pfad die Datei liegt:
>
> postmap: fatal: open
> /opt/mailcow-dockerized/data/conf/postfix/sql/mysql_virtual_mailbox_maps.cf: No such file or directory
Naja, aber aus "Sicht" von 'postmap', das ja innerhalb des Containers
läuft, gibt es diesen von Dir verwendeten Pfad doch eigentlich wirklich
nicht, oder? Insofern wäre diese Fehlermeldung dann auch nachvollziehbar.
Aber gut, ich habe mit mailcow vor ca. mehreren Jahren mal ganz kurz zu tun
gehabt. Das ist nur noch sehr dunkel in Erinnerung ... ;-)
Wie gesagt: Ich denke mal, der von mir aus der main.cf übernommene Pfad ist
doch sicherlich (nur) aus Sicht innerhalb des Containers gültig, oder irre
ich mich?
IIRC hatte ich bei dem Docker-Zeugs dann immer so was wie
'docker exec-it $CONTAINERID /bin/bash' benutzt, um eine Shell _im_
Container zu bekommen. Und damit müsste doch dann der Pfad stimmen und:
'postmap -q kamera at nazareth-norddeich.de
mysql:/opt/postfix/conf/sql/mysql_virtual_mailbox_maps.cf'
eigentlich funktionieren?
> root at mail2:/opt/mailcow-dockerized/data/conf/postfix/sql# ll
> total 88
> -rw-r----- 1 root systemd-network 319 Jan 5 14:47
> mysql_virtual_mailbox_maps.cf
Das ist zwar die Datei, aber der Pfad eben aus Sicht des Hostsystems. Und
der wird ja entsprechend der Container-Config in selbigem irgendwo hin
gemountet.
> Es kann wohl mit mailcow zu tun haben, das der Befehl nicht passt.
Du kannst ja mal mit dem erwähnten docker exec -it ... versuchen, ob Du den
Befehl innerhalb des Containers gestartet bekommst. Dann sollte der Pfad
schon stimmen - ansonsten wären ja wichtige Teile Deiner main.cf für die
Katz, und das kann ich mir beim besten Willen nicht vorstellen. ;-)
> Ich habe
> beim durchschauen in mailcow gesehen, das das Postfach nicht vorhanden war.
> Ich habe jetzt dann noch die andere Richtung probiert, dabei habe ich dann
> festgestellt, dass das Postfach wirklich nicht vorhanden ist.
Gut, damit wissen wir also eindeutig, dass Postfix recht und die
entsprechende Meldung im Log ihre Berechtigung hatte. Alles gut also. :)
Der von mir vorgeschlagene Test mit dem 'postmap -q ...' diente ja
letztlich auch nur dazu, genau das zweifelsfrei herauszufinden. Wir sind
halt jetzt lediglich über einen anderen Weg zu dieser Erkenntnis gekommen,
auch OK. ;-)
> mailcowdockerized-postfix-mailcow-1 | Jan 5 16:33:04 fe6b174435f0
> postfix/lmtp[647]: B9A51100209: to=<kamera at nazareth-norddeich.de>,
> relay=dovecot[172.22.1.250]:24, delay=6.9, delays=6.9/0.01/0/0.06,
> dsn=2.0.0, status=sent (250 2.0.0 <kamera at nazareth-norddeich.de>
> 6P0cJbDttmOFAAQA0TOh/w Saved)
[...]
> Postfix relayed es ja, aber nur in das Docker interne Netz, hast du da auch
> Ahnung wo das landet,
Ich habe eine Vermutung, mehr nicht ;-):
In Deiner main.cf steht:
virtual_transport = lmtp:inet:dovecot:24
mit (lt. Log) dovecot=172.22.1.250
Daher dürfte die Mail an den 'dovecot-mailcow'-Container (ich glaube, so
hieß das Ding standardmäßig) an dessen IP-Adresse 172.22.1.250 auf Port 24
übergeben worden sein.
Wenn meine Vermutung stimmt, müsstest Du also im Dovecot-Log sehen, dass
diese Mail in die Mailbox 'kamera at nazareth-norddeich.de' zugestellt worden ist.
> zumindestens nicht auf dem mail Da habe ich geschaut,
Richtig - anhand des Logs oben bin ich mir sehr sicher, dass die Mail dort
_nicht_ angekommen ist. ;-)
Ohne den Inhalt der entsprechenden DB-Tabelle zu kennen, aber auf dem mail2
steht ja in der DB auch sicherlich die Domain 'nazareth-norddeich.de' drin.
Bedeutet, durch:
virtual_mailbox_domains =
proxy:mysql:/opt/postfix/conf/sql/mysql_virtual_domains_maps.cf
betrachtet sich der mail2 als zuständig für diese Domain und stellt die via
o. g. virtual_transport zu. Und lt. Log funktioniert das auch korrekt.
Wie gesagt: Dovecot-(Container-)Log und/oder ein Blick in das Maildir auf
dem mail2 werden Dir die Mail zeigen. ;-)
> und auch irgenwelche sonstigen logs gesucht. Aber nichts gefunden.
Vielleicht nicht in allen geguckt? ;-)
Ich würde mich an dieser Stelle langsam ausklinken, da das jetzt doch sehr
in die Details Deiner Container-Umgebung geht, was via Mail aus der Ferne
schwer zu untersuchen ist.
Aber alles in allem funktioniert das ganze (transport-)Setup ja nun auch
wie gewünscht, oder fehlt da jetzt noch was?
LG
Markus
Mehr Informationen über die Mailingliste Dovecot