PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fetchmail + Procmail - Einstellungen bei SuSE 9.1?? Welcher Pfad?



tHaHooL
04.06.04, 18:17
Ich hoffe mir kann jemand weiterhelfen.
Was genau muss ich in der .fetchmailrc einstellen um alle Mails an procmail weiterzuleiten?

Ich hab jetzt folgendes drinstehen:

poll post.strato.de with proto POP3
user "sowieso@domain01.de" passwort "blabla" mda "/etc/procmailrc"

Ich hab schon die Suchfunktion verwendet, aber leider nur Hilfen für andere Versionen gefunden, bei SuSE 9.1 stimmen ja die Hälfte der Pfade wieder nicht...

meine /etc/procmailrc sieht übrigens so aus:

:0
*^TO.*test2@domain01.de
?? hier weiss ich auch nicht was rein soll ??

Ich verwende wie gesagt SuSE 9.1 mit cyrus-imap als MDA.

Danke!

tHaHooL
05.06.04, 09:03
Ich habe jetzt den Pfad in der .fetchmailrc abgeändert, sie sieht jetzt so aus:

poll post.strato.de with proto POP3
user "sowieso@domain01.de" passwort "blabla" mda "/usr/bin/procmail"

Wenn ich jetzt mit dem Befehl "fetchmail" versuche meine Email abruzufen, dann kommt folgendes:

1 message (1 seen) for sowieso@domain01.de at post.strato.de (936 octets).
skipping message sowieso@domain01.de@post.strato.de:1 not flushed


Irgendwo hängts da.

Kann mir da jemand helfen? Liegts vielleicht daran, dass meine .procmailrc in /etc/ ist? Ich wollte das zentral machen und nicht für jeden User eine extra datei.

Stormbringer
05.06.04, 09:52
Aus man fetchmail:


-F | --flush
POP3/IMAP only. Delete old (previously retrieved) messages from the mailserver before
retrieving new messages. This option does not work with ETRN or ODMR. Warning: if
your local MTA hangs and fetchmail is aborted, the next time you run fetchmail, it
will delete mail that was never delivered to you. What you probably want is the
default setting: if you don't specify `-k', then fetchmail will automatically delete
messages after successful delivery.


Gruß

tHaHooL
05.06.04, 10:29
Danke aber den Text kenn ich...
Was willst Du mir damit jetzt sagen? Oder hattest du gemeint, dass ich etwas über die Fehlermeldung "not flushed" wissen wollte?

Das Problem liegt wohl mehr daran, dass die Mail gar nicht erst an Procmail weitergeschickt wird, denn genau die gleiche Meldung kommt wenn ich bei mda "/gibts/gar/nicht" eingebe.

Fetchmail checkt also die Mails, findet dann eine/ mehrere und weiss nicht wo hin damit.

Zumindest siehts danach aus.

Stormbringer
05.06.04, 11:49
Hi,

yep, ich bin davon ausgegangen, daß Dir das "not flushed" nichts sagt ...
Was steht denn im procmail Logfile?
Du läßt es doch protokollieren, oder?
Der betreffende Eintrag in /etc/procmailrc lautet:
LOGFILE=/var/log/procmail/procmail.log
LOGABSTRACT=yes
VERBOSE=yes

Wenn dort nichts aufgeführt ist, bringt Dich ja u. U. das Logfile von fetchmail weiter. Der betreffende Eintrag in die jeweiligen .fetchmailrc lautet bsp.:
set logfile "/home/%USER%/fetchmail.log"

Ansonsten hilft Dir ja u. U. auch:
http://www.sebastianhelms.de/linux/config/procmail/
http://www.uni-giessen.de/hrz/kommuni/procmail.html

Gruß

drcux
05.06.04, 12:06
SuSE ist so vorkonfiguriert, das fetchmail an postfix weitergibt, dieser sollte dann an procmail weitergeben...

/etc/fetchmailrc

poll "pop.uni.de" protocol POP3 : user "meinuser" there with password "meins" is "ich" here

/etc/postfix/main.cf

mailbox_command = /usr/bin/procmail


Kannst du auch Prima über YaST konfigurieren: YaST --> Netzwerkdienste --> Mail-Transfer-Agent

Danach in Ruhe die Konfigurations-Datein lesen ;)

tHaHooL
05.06.04, 12:07
Bei den ganzen Tutorials ist immer von einer procmail.rc im Homeverzeichniss die Rede. Das will ich eigentlich gar ned...

Ich möchte dass das mein Server die Mails via fetchmail vom Server/ bzw. von mehreren Servern holt und sie erst dann verteilt.

Aber es heisst immer die procmailrc muss im Homeverzeichniss legen.. kapier ich nicht ganz, denn was soll sie denn da wenn die Mails ja erst den Benutzern zugeordnet werden müssen ???

drcux
05.06.04, 12:18
leg eine /etc/.procmailrc an, die nimmt procmail dann automatisch

/usr/share/doc/packages/procmail/examples/1procmailrc

tHaHooL
05.06.04, 12:40
Ok, ok... bei mir klappt irgendwie gar nix und ich bin jetzt so weit, dass ich es über Yast versuche (was ich eigentlich total vermeiden wollte, aber bei mir ists dringend... das ganze muss bis heute abend laufen).
Vielleicht bist du nochmal so nett und hilfst mir, ich hab nämlich noch ein paar Fragen.


Der Server hängt an einem DSL Router mit Flatrate. Die Einstellung bei der Verbindungsart hab ich also mit "Permanent" bestätigt.

Dann hab ich den ausgehenden Mailserver angegeben.

So, nun kommt wohl die fetchmail Einstellung. Hier hab ich alle Daten eingegeben, nur weiss ich jetzt nicht wie das mit dem "lokalen Benutzer" zu handhaben ist. Ich will die Mails ja erst alle aussortieren und sie nicht gleich einem lokalen Benutzer zuordnen.

Dann noch der Punkt "Mail von root weiterleiten an" ??

Und was soll ich bei Auslieferungsmodus angeben? Procmail?
Wenn ich aber vorher schon einen lokalen Benutzernamen angeben muss wo die Mails landen sollen, für was dann noch Procmail?

Zusätzlich kommen da noch "Aliase" & "Viruelle Domains" hinzu.

Ich kenn mich jetzt echt nicht mehr aus :confused: :confused:

Stormbringer
05.06.04, 14:23
Hi,

hier schaut es wie folgt aus (SuSE 8.2, fetchmail, gotmail, procmail, amavis-new, spamassassin, cyrus-imap):

$HOME/.fetchmailrc_gmx


set logfile "/home/USER/fetchmail.log"
set postmaster "USER"
set bouncemail
set spambounce
set properties ""
poll imap.gmx.net
proto IMAP
user "username@gmx.de"
password "password"
# keep
fetchall
ssl
norewrite
is USER


/etc/procmailrc


LOGFILE=/var/log/procmail/procmail.log
VERBOSE=yes
SHELL=/bin/bash
ANOMY=/usr/local/anomy/
DELIVER=/usr/lib/cyrus/bin/deliver
FORMAIL=/usr/bin/formail
#
SENDER=$1
RECIPIENT=$2
MAILBOX=$3
USER=$4
SHIFT=1
#
:0fw
| /usr/bin/spamassassin -P
#
#LOGFILE=/var/log/procmail/procmail-sanitizer.log
#:0 fw
# | /usr/local/anomy/bin/sanitizer.pl /etc/sanitizer.cfg
#
:0 Wc
| /usr/bin/razor-check
#
:0
| /usr/sbin/sendmail -i -f "$SENDER" -- "$@"
#


Relevante Einträge in /etc/postfix/main.cf


mailbox_command =


Relevante Einträge in /etc/postfix/master.cf


smtp inet n - y - - smtpd -o content_filter=procmail:filter
[...]
localhost:10025 inet n - n - - smtpd -o content_filter=
[...]
procmail unix - n n - - pipe
flags=R user=nobody argv=/usr/bin/procmail -t -m /etc/procmailrc ${sender} ${recipient}


Schema:
Per USER crontab wird dann bspw. alle 10 Minuten fetchmail mit der Konfigurationsdatei $HOME/.fetchmailrc_gmx aufgerufen.
Fetchmail ruft dann die angegebenen Mailboxen ab, und übergibt diese an postfix. Postfix leitet die EMails loakl an TCP Port 10024 weiter, an welchem amavis-new lauscht. Nachdem amavis-new die EMails geprüft hat, werden sie per TCP Port 10025 an postfix zurückgereicht.
Alsdann übergibt postfix sie an procmail, wo sie gemäß der /etc/procmailrc verarbeitet werden, und den jeweiligen Mailboxen seitens cyrus-imap zugestellt werden.

Mußt es also an Deine Umgebung/Bedürfnisse anpassen.

Gruß

tHaHooL
05.06.04, 17:05
Ok, und wo sage ich Fetchmail, dass er die Mails zu Procmail schicken soll?
Ich habe viele Cyrususer die gar keinen Systemaccount haben. Oder muss ich da zwingen einen haben und die .procmailrc da rein legen?

Stormbringer
05.06.04, 18:37
Die Konstellation habe ich aus diversen Gründen nicht - kann da also nichts dazu sagen. ;)

Gruß

tHaHooL
05.06.04, 19:13
ok, ok... ich hab für jeden Mailuser nun auch einen lokalen user angelegt. Im Moment teste ich mit "root"

Ich hab jetzt also ein pop3 Konto welches ich mit fetchmail abrufe. Die emails landen dann direkt im imap Postfach vom root.
Das funktioniert wunderbar.

Nur würde ich gerne eine .procmailrc im Homeverzeichniss anlegen und diese als Filter verwenden.
Ich hab eine angelegt, die sieht so aus:

VERBOSE=yes
LOGFILE=$HOME/procmail.log

.0
*^TOtest2@domain01.de
gw


Damit will ich erreichen, dass eine eingehende Mail an "test2@domain01.de" an den lokalen Benutzer "gw" weitergeleitet wird.

Leider passiert rein gar nix. Die mails kommen nach wie vor ganz normal beim root im imap verzeichniss an.
wenn ich eine .forward datei anlege, dann kann ich zwar forwarden, aber wo stell ich da procmail ein? Ich hab schon alles mögliche probiert, aber mein Filter scheint so nicht zu funktionieren.

Kann ich das nicht gleich in Postfix einstellen, dass die mails sofort an Procmail gehen sollen, so dass es ausreicht wenn ich unter dem jeweiligem Homeverzeichniss eine .procmailrc anlege?

Es tut mir ja echt leid, dass ich heute so nervig bin, aber ich muss das heute noch zum laufen bekommen, sonst gibts ärger... ich habs jemanden versprochen
:eek:

Stormbringer
05.06.04, 21:15
Ungetestet(!!):


:0
^(To:|Cc:).*linux@domain01.de
| formail -I "To:USER@DOM.AIN.de" | $SENDMAIL -oi -t

oder:


:0
^(To:|Cc:).*linux@domain01.de
! USER@DOM.AIN.de

Gruß

tHaHooL
05.06.04, 23:37
Danke! Ich hab bis morgen "Verlängerung" bekommen!
Ich werds versuchen und gib dann bescheid!