[Postfixbuch-users] Mailheader kuerzen

Christian Bricart christian at bricart.de
Di Sep 15 11:34:26 CEST 2009


Kai Fürstenberg wrote:
> Hallo Hauke,
>
> Schacht, Hauke schrieb am 15.09.2009 10:50:
>> wir benutzen einen Postfixserver in der DMZ, dahinter im Lan stehen
>> mehrere IMAP Server,
>> die die Mails für die Benutzer vorhalten.
>>
>> Ich möchte gerne wenn ich eine Mail schicke, das der Postfix den
>> Mailheader gekürzt oder maskiert.
>>
>> Hier ein Beispielheader (jetzt):
>> Received: from mail.domain.de (EHLO mail.domain.de) [10.10.10.10]
>>   by mx0.gmx.net (mx114) with SMTP; 15 Sep 2009 10:11:40 +0200
>> Received: from IMAP1.internesLan.de (unknown [192.168.26.10])
>> 	by mail.domain.de (Postfix) with ESMTP id E68441EC046
>> 	for <geheim at gmx.de>; Tue, 15 Sep 2009 10:11:38 +0200 (CEST)
>> Received: from IMAP2.internesLan.de ([192.168.26.11]) by
>> IMAP1.internesLan.de with Microsoft SMTPSVC;
>> 	 Tue, 15 Sep 2009 10:11:38 +0200
>>
>> So sollte es nur aussehen (soll):
>> Received: from mail.domain.de (EHLO mail.domain.de) [10.10.10.10]
>>   by mx0.gmx.net (mx114) with SMTP; 15 Sep 2009 10:11:40 +0200
>>
>> Ich habe es mit masquerade_domains = ausprobiert, aber so wie ich das
>> verstehe hilft mir das
>> dort auch nicht weiter.
>>
>> Habt ihr einen Tipp wonach ich suchen soll, oder geht das gar nicht?
>
> mit Postfixeigenen Mitteln eher nicht. Postfix wird die Received-Header
> nicht verändern oder weglassen. Header-Checks würden da auch nichts
> bringen, weil Postfix eben nur immer eine Zeile bearbeitet und nicht
> unterscheidet, ob die darunterliegende Zeile zu einem Received, oder zu
> einem überlangen Subject gehört.

Hmm..?!? Neue Zeilen (oder eben Blöcke, weil umgebrochenene Zeilen)
beginnen immer am Anfang - sollte es weitere nachfolgende Zeilen geben,
die dazugehören, dann sind diese mit (White-)Space einzurücken.
Ergo, kann man natürlich sehr wohl unterscheiden, wieviel weiterer
umgebrochener Text noch zu einer "Zeile" gehört..

>
> Ich könnte mir vorstellen, dass du die Mail lokal zwischenspeichern
> könntest, ein Script drüberjagst, dass alle Received-Header löscht, und
> die Mail dann mit sendmail -t wieder einliefert.
>
> Du hast dann aber auf jeden Fall noch eine Received-Zeile drin, die in
> etwa lautet:
> Received: by mail.domain.de (Postfix, from userid 50)
> 	id 3DDF428831; Tue,  15 Sep 2009 10:11:38 +0200 (CEST)

Als bei mir funktioniert header_checks hervorragend und tut genau das
Gewünschte:

main.cf:

...
header_checks = pcre:/etc/postfix/header_checks
...

header_checks:

/^Received:.*\[192\.168\.26\./   IGNORE

und alle Recieved-Header, die "192.168.26.xxx" enthalten sind weg.

Zur Vorsicht: natürlich heisst "alle" auch wirklich "alle"! d.h. auch
fremde Header werden gekillt!
Also entweder die o.g. Regex verfeinern oder genau wissen, an welcher
Stelle man das einbaut ;-)

Christian





Mehr Informationen über die Mailingliste Postfixbuch-users