Martin Deppe wrote:
So und dann also die Informationen:
gateway: SuSE 10.0 (alles aktuell) postfix 2.2.5-5i586 procmail 3.22-42.4
martin4: SuSE 9.2 (alles aktuell) postfix 2.1.5-3.4 procmail 3.22-40.4
Wenn ich auf gateway das Kommando "echo Test | mail -s Test martin@martin4" absetze, bekomme ich folgende Ausgabe bei "mailq":
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- 41BD2EE9B 2391 Tue Apr 18 17:03:59 MAILER-DAEMON (connect to gateway.mylocal.net[192.168.1.1]: Connection refused) root@gateway.mylocal.net
Okay, hier ist das erste Problem: Wenn du eine Mail an eine nicht vollständig qualifizierte Empfängeradresse schickst, dann korrigiert Postfix das, indem er den Wert von $myorigin daranhängt. Du müsstest also mindestens an martin@martin4.localdomain oder ähnliches schicken. Als Absender steht hier MAILER-DAEMON, es ist also nicht mehr die ursprüngliche Mail, sondern die abgewiesene Mail, die gebounced ist und an root@gateway.mylocal.net zurückgeschickt werden sollte. Warum die gebounced ist kommt später unten im Log. Verwende deshalb immer vollständige Emailadressen, vor allem, wenn zwischen zwei Rechnern Mails hin- und hergeschoben werden sollen.
-- 2 Kbytes in 1 Request.
"postconf -n" gibt
von martin4?
alias_maps = hash:/etc/aliases biff = no canonical_maps = hash:/etc/postfix/canonical command_directory = /usr/sbin config_directory = /etc/postfix daemon_directory = /usr/lib/postfix debug_peer_level = 2 defer_transports = disable_dns_lookups = yes
Wenn du keinen lokalen DNS-Server laufen hast, dann sind die Hostnamen in /etc/hosts für beide Rechner vorhanden, oder? Dort sollte dann so etwas stehen wie: /etc/hosts: # IP-Address Full-Qualified-Hostname Short-Hostname # 127.0.0.1 localhost # special IPv6 addresses ::1 localhost ipv6-localhost ipv6-loopback 192.168.1.1 gateway.mylocal.net gateway 192.168.1.4 martin4.mylocal.net martin4 Diese hosts sollte auf beiden Rechnern vorhanden sein. in /etc/nsswitch.conf sollte zumindest folgendes stehen: /etc/nsswitch.conf: hosts: files dns networks: files dns Wenn das vorhanden ist, dann sollte es keine Probleme mit Namensauflösung geben und du kannst dafür sorgen, dass beide Rechner wissen, wer für was zuständig ist.
html_directory = /usr/share/doc/packages/postfix/html inet_interfaces = all
okay.
mydestination = mylocal.net
Besser: mydestination = $myhostname, localhost.$myhostname So kannst du mails an addresse@localhost schicken, und diese werden dann immer an den lokalen Server geschickt. Dieser ergänzt ihn dann mit $myorigin, dass du auch auf $myhostname setzen solltest. myorigin = $myhostname
myhostname = martin4.mylocal.net
Diesen Parameter musst du für gateway natürlich anpassen, aber das mydestination und myorigin bleibt gleich.
newaliases_path = /usr/bin/newaliases queue_directory = /var/spool/postfix readme_directory = /usr/share/doc/packages/postfix/README_FILES relayhost =
Hm, kein Relayhost, dann schickt du direkt, was bedeutet, dass die Namensauflösung wirklich funktionierten muss!
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
Verwendest du diese Option? Wenn nicht, dann löschen!
smtp_sasl_security_options = smtp_use_tls = no smtpd_client_restrictions = smtpd_helo_required = no smtpd_helo_restrictions = smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination smtpd_sasl_auth_enable = no smtpd_sender_restrictions = hash:/etc/postfix/access smtpd_use_tls = no strict_rfc821_envelopes = no transport_maps = hash:/etc/postfix/transport
hier könntest du Routen eintragen, aber das sollte nicht notwendig sein, wenn du mydestination, myhostname, myorigin und hosts so setzt, wie ich es oben gezeigt habe.
/var/log/mail enthält: Apr 18 17:19:01 martin4 postfix/postfix-script: starting the Postfix mail system Apr 18 17:19:01 martin4 postfix/master[5402]: daemon started -- version 2.1.5 Apr 18 18:34:39 martin4 postfix/smtpd[7499]: connect from gateway.mylocal.net[192.168.1.1] Apr 18 18:34:39 martin4 postfix/smtpd[7499]: 43358E43F: client=gateway.mylocal.net[192.168.1.1] Apr 18 18:34:39 martin4 postfix/cleanup[7502]: 43358E43F: message-id=<444514D5.mailBPQ11LG96@gateway.mylocal.net> Apr 18 18:34:39 martin4 postfix/qmgr[5420]: 43358E43F: from=
, size=639, nrcpt=1 (queue active) Apr 18 18:34:39 martin4 postfix/smtpd[7499]: disconnect from gateway.mylocal.net[192.168.1.1]
Okay, er (martin4) hat die Mail von gateway bekommen!
Apr 18 18:34:39 martin4 postfix/smtp[7503]: 43358E43F: to=
, relay=none, delay=0, status=bounced (mail for martin4.mylocal.net loops back to myself)
Leider weiss er nicht, was er damit anfangen soll! Die Mail ist an die Domain martin4.mylocal.net gerichtet, er kennt aber nur ($mydestination) mylocal.net. Und das ganze geht dann auch noch im Kreis! Er weiss nicht wohin, aber alle schicken ihm den Krempel!
Apr 18 18:34:39 martin4 postfix/cleanup[7502]: 814245AF02: message-id=<20060418163439.814245AF02@martin4.mylocal.net> Apr 18 18:34:39 martin4 postfix/qmgr[5420]: 814245AF02: from=<>, size=2380, nrcpt=1 (queue active)
Verzweiflung, denkt er, ich schicke den Krempel zurück, soll gateway doch sehen, was er damit macht.
Apr 18 18:34:39 martin4 postfix/qmgr[5420]: 43358E43F: removed Apr 18 18:34:39 martin4 postfix/smtp[7503]: connect to gateway.mylocal.net[192.168.1.1]: Connection refused (port 25)
So ein Saubatzen! Erst schickt er mir den Müll, jetzt will er nichts mehr damit zu tun haben! Er weigert sich sogar, mit mir zu sprechen!
Apr 18 18:34:39 martin4 postfix/smtp[7503]: 814245AF02: to=
, relay=none, delay=0, status=deferred (connect to gateway.mylocal.net[192.168.1.1]: Connection refused)
Was mache ich nun damit?!? Erst mal auf die lange Bank schieben, vielleicht kommt ja noch die rettende Idee... Die Mail bleibt jetzt so lange in der deferred queue, bis die bounce_queue_lifetime (default 5d) erschöpft ist. Lösung: Sorge also dafür, das Postfix auf martin4 weiss, dass er zuständig ist für Mails der Domain martin4.mylocal.net. #martin4: postconf -e "mydestination = $myhostname, localhost.$myhostname" postconf -e "myhostname = martin4.mylocal.net" postconf -e "myorigin = $myhostname" rcpostfix stop rcpostfix start postsuper -r ALL Der letzte Befehl requeued noch einmal alle Mails, dann sollte nach kurzer Zeit auch die mailq wieder leer sein. Schicke dann mal von gateway eine Mail und erzähle, ob sie jetzt sauber ankommt. Sandy -- Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com