• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Canonical map setzt den from: name nicht um

Status
Für weitere Antworten geschlossen.

framp

Moderator
Teammitglied
Hallo,

ich moechte gerne eine eMail bei mir im Netz von einem lokalen Rechner obelix zu irgendeinem anderen Rechner schicken und dabei die interner lokale Adresse in eine externe isp eMailAdresse umsetzen.

In der canonical map habe ich
Code:
hugo@obelix.framp.local        hugo@isp.de

und schicke die eMail von hugo@obelix testweise zu hugo@gateway. Dabei bekomme ich

Code:
Return-Path: <hugo@isp.de>
Received: from murder ([unix socket])
	 by gateway (Cyrus v2.2.12) with LMTPA;
	 Mon, 02 Jan 2006 19:07:37 +0100
X-Sieve: CMU Sieve 2.2
Received: from obelix.framp.local (obelix.framp.local [192.168.0.6])
	by gateway.framp.local (Postfix) with ESMTP id 84E7D46ECD
	for <hugo@gateway.framp.local>; Mon,  2 Jan 2006 19:07:37 +0100 (CET)
Received: by obelix.framp.local (Postfix, from userid 1000)
	id 662D14067; Mon,  2 Jan 2006 19:07:37 +0100 (CET)
Date: Mon, 2 Jan 2006 19:07:37 +0100
From: Testuser <hugo@obelix.framp.local>
To: hugo@gateway.framp.local
Subject: gata
Message-ID: <20060102180737.GA6400@obelix.framp.local>
Mime-Version: 1.0
Content-Type: text/plain;
  charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.5.9i
X-Length: 798
X-UID: 1674
Status: RO
X-Status: RC
X-KMail-EncryptionState: N
X-KMail-SignatureState: N
X-KMail-MDN-Sent:

d.h. der Returnpath wurde geaendert. Aber nicht der from: Name. Dort sollte aber auch hugo@isp.de stehen damit der Empfaenger beim Reply an eine externe gueltige Adresse antwortet und nicht an die interne.

In dem Header der canonical file steht:
Code:
The  canonical  mapping  affects   both   message   header
#        addresses (i.e. addresses that appear inside messages) and ...
.

Kann ich nicht lesen oder warum wird die from Adresse nicht umgesetzt?
 
postmap ausgeführt?

wieso setzt du nicht deine domaine als mydestination?
warum so umständlich mit adress-rewrite?
 
OP
framp

framp

Moderator
Teammitglied
dermichel schrieb:
postmap ausgeführt?
Ja - sonst wuerde ja der return path nicht rewrited werden.
wieso setzt du nicht deine domaine als mydestination?
warum so umständlich mit adress-rewrite?

Ich habe bei mir am gateway

Code:
masquerade_domains = framp.local
mydestination = $mydomain, $myhostname, localhost.$mydomain, localhost
mydomain = framp.local
myorigin = $mydomain

Deiner Antwort nach gibt es einen einfacheren Weg das Problem zu loesen. Nur leider verstehe ich noch nicht wie.

Nichtdestotrotz wird auch bei der umstaendlichen Art durch die canonical Rule kein Mapping des from: vorgenommen. Weisst Du warum?
 
das ist nicht die "einfache" methode, sondern die richtige:

setze als deine domaine "isp.de" und versende vom client aus mit "benutzer@isp.de".
was lokal zugestellt werden soll bleibt in deinem system, alles andere geht raus ueber
den relayhost oder wird direkt zugestellt wenn du eine feste ip hast.
 
hast du auch "sender_canonical_maps" gesetzt? nicht nur die "canonical_maps"?


http://www.postfix.org/postconf.5.html#sender_canonical_maps
 
OP
framp

framp

Moderator
Teammitglied
dermichel schrieb:
hast du auch "sender_canonical_maps" gesetzt? nicht nur die "canonical_maps"?

Nein (Allerdings auch probiert).

Aus dem REWRITE readme von POSTFIX:
Code:
The sender and recipient canonical maps are applied before the common canonical
maps.
Demnach kann ich doch entweder in canonical oder sender_canonical da mapping vornnehmen. Also sollte es egal sein ob ich das in sender oder canonical machen.
 
framp schrieb:
Demnach kann ich doch entweder in canonical oder sender_canonical da mapping vornnehmen. Also sollte es egal sein ob ich das in sender oder canonical machen.

stimmt.

alles richtig gesetzt in der main.cf?

canonical_classes = envelope_sender, envelope_recipient, header_sender, header_recipient
canonical_maps = hash:/etc/postfix/canonical

das rewrite muss dann einwandfrei funktionieren.

was hast du bei "receive_override_options" eingestellt?

sende mal eine mail und lass ein tail -f mitlaufen.
 
OP
framp

framp

Moderator
Teammitglied
dermichel schrieb:
das ist nicht die "einfache" methode, sondern die richtige:

setze als deine domaine "isp.de" und versende vom client aus mit "benutzer@isp.de".
Ich habe also meine domain bei obelix und dem gateway auf isp.de gesetzt.

Der Effect ist
Code:
From: Mail Delivery Subsystem <MAILER-DAEMON@post.isp.de>
 To: hugo@isp.de
 
The original message was received at Mon, 2 Jan 2006 22:26:28 +0100 (MET)
from p54A0F685.dip.t-dialin.net [84.160.246.133]

   ----- The following addresses had permanent fatal errors -----
<hugo@framp.local>
    (reason: 550 Host unknown)

D.h. meine eMail wird direkt an meinen Provider geschickt und der meckert dass er den Sender hugo@framp.local nicht kennt :cry:
Dabei will ich, dass eine eMail von hugo@obelix.framp.local an hugo@gateway.framp.local schickt und dabei in der mail hugo@obelix.framp.local durch hugo@isp.de ersetzt :cry:

Habe ich was falsch verstanden?
 
ja, hast du.

du bist für isp.de zuständig.
das ist deine domaine.
also ist dein postfix dafür zuständig.
du trägst diese als deine domaine ein.
auf deinem client stellst du als absender deinname@isp.de
ein.

du versendest an test@example.com eine mail.
diese geht an deinen postfix.
der erkennt: example.com? nicht für mich -> also raus ins netz.

du versendest an deinname@isp.de oder an eine andere adresse @isp.de eine mail.
diese geht an postfix.
der erkennt: isp.de? das bin ich! und legt die mails ins lokale postfach.
 
OP
framp

framp

Moderator
Teammitglied
Das ist eigentlich sehr einleuchtend. Es liegt wohl daran, dass alle DNS Namen in meinem Netz mit framp.local enden, also meine lokales netz framp.local ist. Deshalb bin ich nicht auf die Idee gekommen meine eMail (vs DNS) Domain auf isp.de zu setzen sondern eben alles zu von framp.local auf isp.de zu mit der canonical map mappen.

Ich habe es probiert, aber warum motzt dann mein isp wg hugo@framp.local. Irgendwas wird da wohl noch nicht von meiner lokalen domain uebersetzt.
 
weil du keinen relayhost verwendest?

lieferst du direkt aus?

versende mal eine mail an einen externen empfänger und poste das maillog.
 
OP
framp

framp

Moderator
Teammitglied
Ich habe also sowohl bei obelix als auch gateway im postfix als domain isp.de eingetragen und von hugo@obelix.framp.local. an hugo@gateway.framp.local eine eMail geschickt.

Code:
Jan  2 23:43:24 gateway postfix/smtpd[9237]: connect from obelix.framp.local[192.168.0.6]
Jan  2 23:43:24 gateway postfix/smtpd[9237]: B1CA046AA9: client=obelix.framp.local[192.168.0.6]
Jan  2 23:43:24 gateway postfix/cleanup[9240]: B1CA046AA9: message-id=<20060102224324.GA6715@obelix.framp.local>
Jan  2 23:43:24 gateway postfix/qmgr[9181]: B1CA046AA9: from=<hugo@isp.de>, size=628, nrcpt=1 (queue active)
Jan  2 23:43:24 gateway postfix/smtpd[9237]: disconnect from obelix.framp.local[192.168.0.6]
Jan  2 23:43:25 gateway postfix/smtp[9241]: B1CA046AA9: to=<hugo@framp.local>, orig_to=<hugo@gateway.framp.local>, relay=post.isp.de[192.67.198.79], delay=1, status=sent (250 2.0.0 k02MhOjS001448 Message accepted for delivery)
Jan  2 23:43:25 gateway postfix/qmgr[9181]: B1CA046AA9: removed
 
framp schrieb:
Ich habe also sowohl bei obelix als auch gateway im postfix als domain isp.de eingetragen und von hugo@obelix.framp.local. an hugo@gateway.framp.local eine eMail geschickt.

wieso machst du das? schreibe ich wirres zeug?

du sollst mit FROM: hugo@isp.de die mails versenden.

framp.local ist lediglich eine DNS domaine - das hat mit e-mail garnichts zu tun!

das gateway wird praktisch nur noch als forwarder benutzt für alle domains <> isp.de.
 
OP
framp

framp

Moderator
Teammitglied
dermichel schrieb:
wieso machst du das? schreibe ich wirres zeug?
Ich hatte jedenfalls verstanden die domain in isp.de aendern zu muessen :roll: .
D.h. also die domaine muss also framp.local bleiben und jeder client muss angeben, seine domaine waere isp.de. Wie das mit mutt geht weiss ich im Moment noch nicht aber das werde ich herauskriegen.

Ich hatte mir allerdings gedacht, es ist von der Benutzerseite leichter, die Clients schreiben ihre eMails unter framp.local und diese und wird in isp.de gemapped beim senden. Beim Empfangen per fetchmail werden diese isp.de eMails wieder in die lokalen framp.local accounts gemapped.

Send
hugo@obelix.framp.local => hugo.isp.de -> foo@irgendwer.com

Receive
foo@irgendwer.com -> hugo.isp.de => hugo@gateway.framp.local

Genaugenommen versuche ich ein lokales eMailNetz auf ein externes zu mappen. Leider habe ich bislang kein HOWTO diesbezueglich im LC gefunden. Auch im Netz bin ich bislang nicht fuendig geworden :cry:
 
OP
framp

framp

Moderator
Teammitglied
Mit Hilfe von http://www.postfix.org/faq.html und dem Hinweis von dermichel mydomain ueberall auf isp.de zu setzen habe ich es soweit hinbekommen, dass auch mein ISP meine eMails akzeptiert. Verstanden habe ich es allerdings noch nicht warum :cry: .
Zitat aus der FAQ:

Code:
Workstation:

    /etc/postfix/main.cf:
        myorigin = $mydomain

Server:

    /etc/postfix/main.cf:
        myorigin = $mydomain
        mydestination = $myhostname, localhost.$mydomain, $mydomain
Bei mir fehlte beim Server $mydomain bei mydestination.

Trotzdem wuerde mich interessieren warum die canonical map nicht gezogen hat :x
 
Status
Für weitere Antworten geschlossen.
Oben