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