
Axel Dreher am Freitag, 19. September 2003 10:55:
Hans-Robert Wagner wrote:
Am Mittwoch, 17. September 2003 22:01 schrieb Axel Dreher:
postconf -n:
mydestination = $myhostname, localhost.$mydomain mydomain = linux.local myhostname = linux
Das sieht für mich falsch aus, richtig(er) wäre: mydomain=local myhostname=linux.local oder: mydomain=local.mydomain.de myhostname=linux.local.mydomain.de
Ändere das mal und dann 'rcpostfix reload'. Dann mal weitersehen.
Ich habe den oberen Versuch gemacht. Ergebnis:
tail -20 /var/log/mail:
Sep 19 10:45:19 linux postfix/smtpd[2080]: connect from localhost[127.0.0.1] Sep 19 10:45:19 linux postfix/smtpd[2080]: 46E08FDE9: client=localhost[127.0.0.1] Sep 19 10:45:19 linux postfix/cleanup[2081]: 46E08FDE9: message-id=<200309191015.10912.a.kyek@vodafone.com> Sep 19 10:45:19 linux postfix/qmgr[2035]: 46E08FDE9: from=<suse-linux-return-269753-axeldreher=gmx.de@suse.com>, size=2865, nrcpt=1 (queue active) Sep 19 10:45:19 linux postfix/smtpd[2080]: 70569FDEA: client=localhost[127.0.0.1] Sep 19 10:45:19 linux postfix/smtp[2042]: 46E08FDE9: to=<acki@localhost.local>, relay=none, delay=0, status=deferred (SOFT BOUNCE - Name service error for local: Host not found)
Tja, ich würde sagen, deine Namensauflösung löst localhost.local nicht auf. Macht meine übrigens auch nicht: linux:~ # host localhost localhost has address 127.0.0.1 linux:~ # host localhost.houdek.home Host localhost.houdek.home not found: 3(NXDOMAIN) linux:~ # host linux.houdek.home linux.houdek.home has address 192.168.0.254 Scheint also durchaus normal zu sein, localhost ist nämlich localhost, da macht eine Domian keinen Sinn.
[... Zustellversuch 2. Mail gesnippt ...]
Wie man sieht, will er zumindest die eingehende Mail nicht mehr nach "draußen" zustellen, sondern intern belassen. Das ist schon mal ein super Fortschritt. Problem jetzt: Er findet local nicht...
Nein, er findet localhost.local nicht. localhost würde er sicher finden, linux.local (deinen Hostnamen) sicher auch.
/etc/postfix/virtual: axeldreher@gmx.de acki@linux.local
Du brauchst nichts umschreiben (envelope), weil fetchmail ja schon an acki@localhost umschreibt.
Ok, das habe ich rausgenommen.Danke.
Ja, Siehe unten.
/etc/postfix/canonical: acki@linux axeldreher@gmx.de acki@linux.linux.local axeldreher@gmx.de acki@linux.local axeldreher@gmx.de acki@localhost.linux.local axeldreher@gmx.de root@linux.local axeldreher@gmx.de root@linux axeldreher@gmx.de root@linux.linux.local axeldreher@gmx.de root@localhost.linux.local axeldreher@gmx.de
Wozu brauchst Du canonical? Hast Du keinen vernünftigen MUA? Jedenfalls ist Dein Problem in der Fehlkonfiguration von 'myhostname' oder 'mydomain' zu suchen _oder_ es ist doch eine Restriktion aktiv, die ich bis jetzt übersehen habe.
Das mit der canonical hab ich irgendwo gelesen.Erst nachdem ich es drin hatte, konnte ich Mails versenden. MUA? Hehe, also testweise hab ich einfach das "mail" - Kommando von der Kommandozeile genommen, ist das ein vernünftiger MUA? Ich glaubs ja nicht.. ;-) Diese Mails schreibe ich direkt über Mozilla Mail ohne Postfix direkt an die Liste.
Canonical 'versteckt' den eigentlichen Absender, in dem er den Header (From:) und den Envelope umschreibt.
Danke.
Genau. Eigentlich sollte dein MUA den Absender schon richtig setzen können (musst ihn natürlich auch eintragen). Hier kann das canonical eher schaden, wenn du z.B. noch die Zeile: acki@localhost.local axeldreher@gmx.de drin hättest, kannst du dir sicher schnell selbst herleiten, dass er jetzt die lokal zuzustellenden Mails (an acki@localhost.local) umschreibt an den Empfänger axeldreher@gmx.de. Und wohin geht die dann?
Achso: zu dem obigen Log-Auszug habe ich hier noch den korrespondierenden Fetchmail-Auszug, schaut total anders aus..
logisch, ist ja auch ein anderes Programm ;-)
fetchmail -a -k -vvvv: Aufpassen, das ist lang!
ich werde es passend kürzen.
fetchmail: 5.9.0 querying gmx (protocol POP3) at Fre 19 Sep 2003 10:45:15 CEST fetchmail: POP3< +OK GMX POP3 StreamProxy ready <24950.1063961114@mp006> fetchmail: POP3> CAPA fetchmail: POP3< -ERR Unknown command. fetchmail: Unknown command. fetchmail: POP3> USER 18079363 fetchmail: POP3< +OK May I have your password, please? fetchmail: POP3> PASS * fetchmail: POP3< +OK mailbox has 2 messages (5396 octets)
Aha, 2 Mails im Postfach ...
fetchmail: selecting or re-polling default folder fetchmail: POP3> STAT fetchmail: POP3< +OK 2 5396 2 messages for 18079363 at pop.gmx.de (5396 octets). fetchmail: POP3> LIST fetchmail: POP3< +OK mailbox has 2 messages (5396 octets) fetchmail: POP3< 1 2583 fetchmail: POP3< 2 2813 fetchmail: POP3< . fetchmail: POP3> RETR 1 fetchmail: POP3< +OK message follows reading message 1 of 2 (2583 octets)
... die erste wird gelesen (2583 Byte) ...
About to rewrite Return-Path: <suse-linux-return-269753-axeldreher=gmx.de@suse.com> Rewritten version is Return-Path: <suse-linux-return-269753-axeldreher=gmx.de@suse.com>
About to rewrite From: Andreas Kyek <a.kyek@vodafone.com> Rewritten version is From: Andreas Kyek <a.kyek@vodafone.com>
About to rewrite To: suse-linux@suse.com Rewritten version is To: suse-linux@suse.com
Da die Frage unten kommt - aus 'man fetchmail': -n, --norewrite (Keyword: no rewrite) Normally, fetchmail edits RFC-822 address headers (To, From, Cc, Bcc, and Reply-To) in fetched mail so that any mail IDs local to the server are expanded to full addresses (@ and the mailserver hostname are appended). This enables replies on the client to get addressed correctly (otherwise your mailer might think they should be addressed to local users on the client machine!). This option disables the rewrite. ... Du hast es nicht ausgeschaltet, also prüft fetchmail die Vollständigkeit der Mailadressen und korrigiert die ggf. Hier ist alles O.K., also passiert auch nix (außer dem Loggen). ... und jetzt wird die Mail per SMTP an Postfix weitergeleitet:
fetchmail: SMTP< 220 linux.local ESMTP Postfix on SuSE Linux 8.0 (i386) fetchmail: SMTP> EHLO localhost fetchmail: SMTP< 250-linux.local fetchmail: SMTP< 250-PIPELINING fetchmail: SMTP< 250-SIZE 10240000 fetchmail: SMTP< 250-VRFY fetchmail: SMTP< 250-ETRN fetchmail: SMTP< 250-XVERP fetchmail: SMTP< 250 8BITMIME fetchmail: forwarding to localhost fetchmail: SMTP> MAIL FROM:<suse-linux-return-269753-axeldreher=gmx.de@suse.com> BODY=8BITMIME SIZE=2583 fetchmail: SMTP< 250 Ok fetchmail: SMTP> RCPT TO:<acki@localhost>
... wie man schön sieht: an "acki@localhost" (!) ...
fetchmail: SMTP< 250 Ok fetchmail: SMTP> DATA fetchmail: SMTP< 354 End data with <CR><LF>.<CR><LF> #**********************************fetchmail: SMTP>. (EOM) fetchmail: SMTP< 250 Ok: queued as 46E08FDE9 not flushed
... und sie wird auf dem Mailserver nicht gelöscht (Option -k / --keep). Das gleiche Prozedere für die 2. Mail snipp ich mal.
fetchmail: Deleting fetchids file. fetchmail: normal termination, status 0 fetchmail: Deleting fetchids file.
Was soll das rewrite? Das hatte ich auch noch nicht.
Siehe oben.
Was meint er mit fetchids file ganz am Ende?
Fetchmail legt für jede abgeholte Mail eine ID in einer entsprechenden Datei an (als temporäres Protokoll). Nach erfolgreichem Druchlauf wird diese Datei gelöscht (normal termination). Man kann die IDs aber auch erhalten und nutzen -> Parameter -U / --uidl. Nun zu deinem Problem: 1. fetchmail ist OK. Die Mails werden abgeholt und an acki@localhost zugestellt. 2. Postfix meckert bei der lokalen Zustellung an acki@localhost.local. localhost.local gibt es nämlich nicht. Warum ändert Postfix die Adresse acki@localhost in acki@localhost.local ? Nun, das macht Postfix standardmäßig. Es hängt an den Hostnamen immer den Domainnamen mit an, so er nicht dranhängt. Das Dumme ist nur, dass sich Postfix nun für den Zielrechner localhost.local auch zuständig fühlen muss, um sie an <user>@localhost (ohne Domain!) zuzustellen. Ansonsten versucht er, die Mail an den betreffenden Rechner weiterzuleiten und kriegt hier die betreffende IP nicht raus (daher die Fehlermeldung ganz oben). Und warum fühlt sich Postfix nicht zuständig bzw. wie kann ich ihn zuständig machen? In main.cf bestimmt der Parameter mydestination, für welche Zielrechner die Mails lokal aufgelost werden sollen, also: mydestination = ... , localhost.local , ... sollte da vorkommen. Bei dir steht localhost.$mydomain und $mydomain ist bei dir linux.local (was aber eigentlich dein Hostname ist). Und hier liegt IMHO auch das Hauptproblem: Ein Domainname besteht normaler Weise aus Domain und TLD. Und irgendwie hat Postfix Probleme, wenn ein Domainname keine TLD beinhaltet. Lösungen: 1. Vergibt dir einen "richtige" loaklen Domainnamen (z.B. home.local) und pass deine Namensauflösung und deine main.cf entsprechend an oder 2. Schreib den Zielrechner, für die Postfix zuständig sein soll, vollständig in die main.cf: mydestination = localhost.local, localhost Wenn du auch lokale Mais aus deinem LAN erhalten willst, hängst du eben noch linux und linux.local mit dran. Jetzt sollte es klappen. -- Gruß MaxX 8-)