[Postfixbuch-users] content_filter Probleme

Patrick Ben Koetter p at state-of-mind.de
Sa Mär 11 11:16:10 CET 2006


* Andre Bischof <a.bischof at gmx.net>:
> Hallo zusammen,
> 
> ich hoffe das ich mit meiner Frage hier richtig bin, ansonsten bitte ich 
> um einen Tipp, wo ich sie am besten sonst loswerden kann.
> 
> Sowohl über google als auch über eine allgemeine Linux-Liste bin ich ein 
> bißchen weitergekommen, aber so richtig klappt's noch nicht - vielleicht 
> könnt ihr helfen?
> 
> Ich möchte alle _ausgehenden_ Mails des Systemusers "www-data" (Debian 
> 3.1) automatisch in einen Sent-Ordner _kopieren_.

Du solltest einen Empfänger für "www-data" einrichten. Andere Mailserver
verifizieren, ob es den Absender "www-data" gibt. Wenn Dein Mailserver das
nicht bestätigen kann, dann nehmen sie die Mail meist nicht an. Da müßtest Du
schon British Airways sein (die das IIRC genau so _falsch_ haben), um in eine
Ausnahmeliste zu kommen...

> Postfix leitet letztendlich (nach Virenscan über amavis und Filterung 
> über sieve) an Cyrus-IMAP weiter, klappt alles super. Einen User 
> "www-data" habe ich auf dem Imapserver angelegt, einen 
> user.www-data.Sent-Ordner auch. Filtern würde ich wohl über sieve, damit 
> die Mails in den Sent-Ordner kommen.
> 
> Was ich aber nicht verstehe: Wie kriege ich die ausgehenden Mails von 
> www-data gefiltert und kopiert? Mein Ansatz wäre, einen Header (BCC: 
> www-data at localhost) hinzuzufügen.

Es gibt keine BCC Header, sonst könnte ja jeder in die Header reinschauen und
nachsehen, an wen das per blind (!) carbon copy gegangen ist... ;)

> Mit check_header scheint das aber nicht zu gehen, da ich ja an den 
> Envelope-Sender ran muss - die Mails von www-data (der Webserveruser) 
> sind skriptgeneriert (Content-Management-Systeme, Groupware und 
> dergleichen), tragen also immer andere Absender im "From:".

Der FROM:-Sender ist nicht der envelope-sender. Alles was im Header einer
E-Mail steht, kannst Du getrost in die Tonne treten, wenn es darum geht diesen
Informationen zu trauen.

Der Envelope-Sender ist die Adresse, die der Mailclient oder das Skript in der
SMTP-Session als "MAIL FROM: <envelope-sender>" angibt.

Wenn Du eine Kopie dieser Mails aufheben willst, dann lass sie vom Skript
doch gleich an zwei Empfänger schicken. Meinetwegen auch BCC...

    Nebenbei bemerkt: Leute, die auf von Deinem Skript generierte E-Mails
    antworten wollen, werden an www-data antworten, weil der envelope-sender
    dazu herangezogen wird - außer Du setzt einen reply-to: Header und auch
    der ist error-prone, weil einige MUAs diesen Header ignorieren.

    Besser also gleich das Skript so bearbeiten, dass es die Adresse, die Du
    auch im FROM: Header angibst, als envelope-sender verwendest. Besser iss
    das...

> Geht das überhaupt über content_filter in der master.cf?
> 
> Ich wollte sowas wie:
> 
> 127.0.0.1:smtp  inet  n       -       n       -       2       smtpd \
>          -o content_filter=filter:procmail
> 
> procmail  unix  -       n       n       -       -       pipe
>   flags=R user=nobody argv=/usr/bin/procmail -t -m /etc/procmailrc
> ${sender} ${recipient}
> 
> probieren, aber das scheint aufgrund der oben beschriebenen Probleme 
> nicht der richtige Ansatz zu sein, oder?

Selbst wenn es gehen würde, erhält so nur procmail die E-Mail und nicht der
wahre Empfänger. Ich würde sagen, Du versuchst mit Postfix aus einer Birne
einen Apfel zu machen. Das Skript sollte gleich Äpfel herstellen.

p at rick

-- 
Das »Postfix«-Buch
<http://www.postfix-buch.com>
saslfinger (debugging SMTP AUTH):
<http://postfix.state-of-mind.de/patrick.koetter/saslfinger/>



Mehr Informationen über die Mailingliste Postfixbuch-users