procmail

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
rolo
Beiträge: 2697
Registriert: 29.08.2002 12:12:25
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: hannover

procmail

Beitrag von rolo » 27.10.2002 11:20:40

hallo,
ich möchte 2 mailinglisten von procmail verwalten lassen abholen soll sie fetchmail
und verschicken postfix. fetchmail holt die mails auch ab gibt sie aber glaube ich aber
nicht an procmail weiter, zumindest werden sie nicht richtig einsortiert. ich habe jetzt
einiges dazu gelesen und sitze auch schon etwas länger dran, vielleicht kann mir ja
jemand weiterhelfen.

.fetchmailrc
defaults:
antispam -1
batchlimit 100
poll pop.gmx.net with protocol pop3
user 'xxx' password 'xxx' to xxx
user 'xxx' password 'xxx' to xxx

.procmailrc
:0:
*^TOdebian-user-german@lists.debian.org
~/Mail/debian

:0:
*^TOsuse-linux@suse.com
~/Mail/suse

.forward
"|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #xxx"

/etc/postfix/main.cf
# smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
setgid_group = postdrop
biff = no
myhostname = xxx
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = xxx, xxx, xxx, xxx
relayhost =
mynetworks = 127.0.0.0/8
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
append_dot_mydomain = no

gruß

Benutzeravatar
abi
Beiträge: 2218
Registriert: 20.12.2001 19:42:56
Wohnort: München
Kontaktdaten:

Beitrag von abi » 27.10.2002 11:30:32

du kannst auch einen Eintrag

Code: Alles auswählen

mda "procmail -d %s"
in .fetchmailrc machen der dann procmail aufruft

Benutzeravatar
rolo
Beiträge: 2697
Registriert: 29.08.2002 12:12:25
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: hannover

Beitrag von rolo » 27.10.2002 11:53:35

hallo
habe ich jetzt dazu gesetzt, die mail wird nun auch an procmail
übergeben aber beim einordnen gibt es fehler.

fetchmail: Nachricht xxx@gmx.net:3 von 3308 wird gelesen (1994 Oktetts)
#******************procmail: Lock failure on "~/Mail/suse.lock"
procmail: Error while writing to "~/Mail/suse"

Benutzeravatar
myx
Beiträge: 1091
Registriert: 17.02.2002 21:19:19
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Berlin

Beitrag von myx » 27.10.2002 12:43:05

man procmail sagt dazu folgendes:

Lock failure on "x" Can only occur if you specify some real weird
(and illegal) lockfilenames or if the lockfile
could not be created because of insufficient
permissions or nonexistent subdirectories.

Wie sehen denn die Zugriffsrechte Deiner suse-mailbox aus?

Gruß myx

Benutzeravatar
rolo
Beiträge: 2697
Registriert: 29.08.2002 12:12:25
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: hannover

Beitrag von rolo » 27.10.2002 13:08:54

lese und schreibrechte für den user
-rw------- 1 data data 777399 27. Okt 08:50 Mail/suse

ich habe eine mbox kopiert und diese dann umbenannt.

gruß

Benutzeravatar
myx
Beiträge: 1091
Registriert: 17.02.2002 21:19:19
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Berlin

Beitrag von myx » 27.10.2002 15:32:31

Hast Du ein Logfile für Procmail angelegt, schau Dir doch mal die Ausgaben darin an, oder falls nicht leg doch eine an:
meine .procmailrc sieht z.B. dafür so aus:

PMDIR=$HOME/.procmail
LOGFILE=$PMDIR/proclog
VERBOSE=yes
INCLUDE=$PMDIR/killfilerc

Vielleicht kannst Du da noch mehr raussfinden.
Ich weiss nicht wieweit Du dich mit procmail auskennst, Du kannst eine Test-Mail auch simulieren und mit Procmail einsortieren. Dazu einfach eine Datei z.B. proctest anlegen und da Deine (Suse)Mail-Header reinschreiben.
z.B.

From: test@test
To: suse-linux@suse.com
Subject: Testmail
Dies ist eine Testmail

Dann mit:
cat proctest | formail -ds procmail
diese Testmail einsortieren lassen

Gruß myx

Benutzeravatar
rolo
Beiträge: 2697
Registriert: 29.08.2002 12:12:25
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: hannover

Beitrag von rolo » 27.10.2002 17:48:05

hallo,

mit dieser .procmailrc bekomme ich jetzt ein logfile. die
mails gehen nun alle nach /home/Mail/mbox, werden also
nicht in die ordner verteilt. das log schreibt:

From atropin Sun Oct 27 17:35:16 2002
Subject: Re: Wie Bookmarks verwalten?
Folder: /home/celine/Mail/mbox

.procmailrc
PATH=$HOME/bin:/usr/bin:/usr/ucb:/bin:/usr/local/bin:.
MAILDIR=$HOME/Mail
DEFAULT=$MAILDIR/mbox
LOGFILE=$MAILDIR/proclog
LOCKFILE=$HOME/.lockmail


:0:
*^Todebian-user-german@lists.debian.org
~/Mail/debian

:0:
*^Tosuse-linux@suse.com
~/Mail/suse

gruß

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 27.10.2002 18:01:03

atropin hat geschrieben: .procmailrc

Code: Alles auswählen

:0:
*^Todebian-user-german@lists.debian.org
~/Mail/debian

:0:
*^Tosuse-linux@suse.com
~/Mail/suse
ich weiss nicht, ob das nur ein Typo ist, aber Deine Regular Expressions funktionieren so nicht, und daher landet die mail im Default Folder.
Eine korrekte Expression für die Debian-user Liste wäre z.B.:

Code: Alles auswählen

*^To.*debian-user-german@lists.debian.org
beachte das ".*" zwischen dem To und dem Anfang der Mailadresse. Ausserdem muss zwischen dem ersten "*" und dem Anfang der RegEx ein Leerzeichen stehen (siehe mein Beispiel unten) Zwischen "To" und der Adresse stehen nämlich noch andere Zeichen ("To: irgendwer@irgendwo.org").

Abgesehen davon würde ich Dir eine andere RegEx empfehlen, als auf den To: Header. Das ist zwar die offensichtliche Lösung, erwischt aber nicht alle Mails. ("To: irgendwer@irgendwo.org CC: debian-user@irgendeinserver.com" würde nicht gematcht) Normalerweise fügen Mailinglistenserver eine eindeutige Header Zeile in Mails ein, die über die Liste gegangen sind, und bieten damit eine perfekte Möglichkeite MLs zu filtern. In meiner procmailrc steht z.B. für die BugTraq Mailingliste:

Code: Alles auswählen

:0:
* ^List-Id: <bugtraq.list-id.securityfocus.com>
Mailinglists/BugTraq
Dieser List-Id Header steht in jeder Mail von dieser Liste, egal wie sie dorthin kam...

Einfach 'mal die kompletten Header einiger Mails von der Mailingliste anschauen. Oft Gibt es dort einen "List-Id" oder einen "X-Mailinglist" Header auf den man perfekt filtern kann.

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
rolo
Beiträge: 2697
Registriert: 29.08.2002 12:12:25
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: hannover

Beitrag von rolo » 28.10.2002 00:10:22

hallo,
ich habe es jetzt mit verschiedenen einstellungen
versucht, leider ohne erfolg.

:0:
* ^To.*debian-user-german@lists.debian.org
~/Mail/debian

:0:
* ^To.*suse-linux@suse.com
~/Mail/suse

ich erhalte diese Fehlermeldung:
procmail: Lock failure on "~/Mail/suse.lock"
procmail: Error while writing to "~/Mail/suse"

oder procmail schreibt ohne fehlermeldung
in die mbox, und verteilt nicht in debian bzw. suse
mitdem X-Mailinglist Header habe ich die
gleichen Probleme.

gruß
micha

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 28.10.2002 02:23:39

Versuch's 'mal mit ":0" in der ersten Zeile jedes Filters statt ":0:" (also ohne den 2ten Doppelpunkt)

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
rolo
Beiträge: 2697
Registriert: 29.08.2002 12:12:25
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: hannover

Beitrag von rolo » 28.10.2002 16:43:23

hallo,
leider funktioniert das auch nicht

:0
* ^To.*debian-user-german@lists.debian.org
~/Mail/debian

:0
* ^To.*suse-linux@suse.com
~/Mail/suse

das log sagt:
From celine Mon Oct 28 16:12:38 2002
Subject: Re: OpenOffice, Fehler nach Workstation-Installation
Folder: /home/celine/Mail/mbox 3061
procmail: Error while writing to "~/Mail/suse"

habe ich den suse bzw. debian ordner vielleicht falsch
angelegt (durch kopieren der mbox und umbennen).

gruß

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 28.10.2002 17:37:26

Wie sind denn die Permissions auf /home/celine /home/celine/Mail und /home/celine/Mail/*?

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
feltel
Webmaster
Beiträge: 10368
Registriert: 20.12.2001 13:08:23
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Leipzig, Germany
Kontaktdaten:

Beitrag von feltel » 28.10.2002 17:38:41

Zur allgemeinen Verwirrung mal hier meine ~/.procmailrc:

Code: Alles auswählen

MAILDIR=/home/feltel/mail
DEFAULT=$MAILDIR/inbox
LOGFILE=$MAILDIR/.procmail.log
VERBOSE=yes

# eMails an sebastian@feltel.de und info@feltel.de
# filtern und ins Mailfile schreiben
:0:
* ^(To|Cc|Delivered-to):.*(sebastian|info)@(feltel|debianforum).de.*
| /usr/bin/proczip $MAILDIR/sebastian-at-feltel-de.gz


# eMails von debian-security-announce-Mailingliste filtern
# und ins Mailfile schreiben
:0:
* ^(To|Cc|Delivered-to|X-Mailing-List):.*debian-security-announce@lists.debian.org.*
| /usr/bin/proczip $MAILDIR/debian-security-announce.gz

 
# eMails von debian-user-de-Mailingliste filtern,
# das "[Debian]"-Subject und doppelte "Re"'s entfernen.
# Anschliessend die Mail ins Mailfile schreiben.
:0 w
  * ^X-Mailing-List: <debian-user-german@lists.debian\.org> 
{
    SUBJECT=`formail -xSubject: \
    | sed -e 's/\(\[\|=5B\)Debian\(\]\|=5D\)\(:\|=3A\)\?[ _]\?//g' \
          -e 's/Re: \(Re: \)*/Re: /g'`
    :0 fw
    | formail -I"Subject:$SUBJECT"
    :0
    | /usr/bin/proczip $MAILDIR/debian-user-de.gz
  }

# eMails von debian-news-Mailingliste filtern
# und ins Mailfile schreiben
:0:
* ^(To|Cc|Delivered-to|X-Mailing-List):.*debian-news@lists.debian.org.*
| /usr/bin/proczip $MAILDIR/linux-at-feltel-de.gz


# eMails von debian-user-german-Mailingliste filtern
# und ins Mailfile schreiben
:0:
* ^(To|Cc|Delivered-to|X-Mailing-List):.*debian-user-german@lists.debian.org.*
| /usr/bin/proczip $MAILDIR/debian-user-de.gz


# eMails an linux@feltel.de filtern und ins
# Mailfile schreiben
:0:
* ^(To|Cc|Delivered-to):.*linux@(feltel|debianforum).de.*
| /usr/bin/proczip $MAILDIR/linux-at-feltel-de.gz


# eMails an feltel@rahn-schulen.de und Co-Domains
# filtern und ins Mailfile schreiben
:0:
* ^(To|Cc|Delivered-to):.*feltel@(rahn-schulen|lips-flugdienst|rahn-service).de.*
| /usr/bin/proczip feltel-at-rahn-schulen-de.gz

# den Rest (meist Spam) ins inbox Mailfile
# schreiben.
:0:
$DEFAULT
und dazu mein kleines proczip-Script, abgelegt in /usr/bin

Code: Alles auswählen

#!/bin/sh
/bin/gzip -fcq9 >> $1 ;
Das mit proczip mache ich, um die "Compressed-Folder"-Funktion von Mutt zu nutzen. Ist dann nicht so ne Platzverschwendung.

@atropin: Ist denn Dein ~/Mail Verzeichniss schreibbar?

Benutzeravatar
rolo
Beiträge: 2697
Registriert: 29.08.2002 12:12:25
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: hannover

Beitrag von rolo » 28.10.2002 18:17:58

hallo

das ~/Mail verzeichnis ist für den user schreibbar.
-rw-r--r-- 1 celine celine 0 29. Aug 18:23 celine

legt procmail die beiden mail-boxen
normalerweise selbst an, oder muss ich das tun?

ich habe jetzt für die debian liste die zeile von oben
eingesetzt und dabei festgestellt das die ganze zeit
nur mails aus der suse liste von procmail in die mbox
gesteckt werden, debian listen mails finde ich dort
nicht, sie stehen auch nicht im procmaillog.

gruß

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 28.10.2002 19:49:26

Leg' die Zielmailboxen 'mal von Hand an (touch Datei). IMHO sollte procmail die Boxen aber anlegen, wenn die nicht existieren, aber eine leere Datei schadet nix.

Aber was mir gerade noch auffällt: Setz die Permissions für das Directory (und dessen Subdirectories) 'mal auf 755 (drwxr-xr-x). Execute auf Directories bedeutet, dass man das verzeichnis listen darf und ähnliches. Kann sein, dass procmail das braucht.

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
rolo
Beiträge: 2697
Registriert: 29.08.2002 12:12:25
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: hannover

Beitrag von rolo » 29.10.2002 07:42:44

hallo,

ich habe jetzt die beiden boxen angelegt und die rechte auf 755 gelegt.
/Mail hat ebenfalls die berechtigungen auf 755.

verteilen tut procmail die mails weiterhin nicht

log:
Folder: **Bounced** 0
procmail: Lock failure on "~/Mail/suse.lock"
procmail: Error while writing to "~/Mail/suse"

gruß

Benutzeravatar
myx
Beiträge: 1091
Registriert: 17.02.2002 21:19:19
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Berlin

Beitrag von myx » 29.10.2002 21:05:58

atropin hat geschrieben:.procmailrc
...
LOCKFILE=$HOME/.lockmail
...
Hast Du diesen eintrag aus Deiner .procmailrc schon mal testweise rausgenommen? Probiere das doch vielleicht mal aus.

Gruß myx

Benutzeravatar
rolo
Beiträge: 2697
Registriert: 29.08.2002 12:12:25
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: hannover

Beitrag von rolo » 30.10.2002 17:09:01

hallo

ich, habe den eintrag rausgenommen, daraufhin sammeln sich alle mails
im user ordner. sie werden aber weiterhin nicht richtig einsortiert. nachdem
ich nun beim reboot des rechner gesehen habe das fetchmail nicht
konfiguriert ist, habe ich ein dpkg-reconfigure fetchmail versucht dabei
erhalte ich dann diese antwort:
Stopping mail retrieval agent: system-wide fetchmail not configured.
Starting mail retrieval agent: system-wide fetchmail not configured.

meine .fetchmailrc
defaults:
antispam -1
batchlimit 100

poll pop.gmx.net with protocol pop3
user '16251358' password 'chaos' to celine

poll pop.gmx.net with protocol pop3
user '15216934' password 'chaos' to celine

mda "procmail -d %s"

ich kann mir mittlerweile auch nicht mehr vorstellen das
procmail die probleme macht.

gruß

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 30.10.2002 17:29:14

system-wide fetchmail ist was anderes (damit kannst Du in /etc/fetchmail die Konfig einrichten, statt in Deinem Home), der Fehler ist also egal.

Es scheint fast so, als ob procmail gar nicht aufgerufen würde...

Bei mir wird procmail nicht von fetchmail aufgerufen, sondern durch eine Datei in meinem Home, namens .forward.

Dort steht "|/usr/bin/procmail" drin, und dadurch wird alles, was von fetchmail an mein exim gegeben wird, danach durch procmail gepiped. Die .forward ist eigentlich ein Standardlösung...

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
rolo
Beiträge: 2697
Registriert: 29.08.2002 12:12:25
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: hannover

Beitrag von rolo » 30.10.2002 19:35:09

hallo,

eine .forward habe ich in meinem home verzeichnis,
da steht drin:

"|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #celine"

eigentlich sollte das richtig sein?

gruß

Benutzeravatar
myx
Beiträge: 1091
Registriert: 17.02.2002 21:19:19
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Berlin

Beitrag von myx » 30.10.2002 20:34:18

Also Du hast eine .forward-Datei, in der procmail aufgerufen wird und ebenso rufst Du procmail über fetchmail auf. Kommt sich das denn nicht irgendwo in die Quere?

@pdreker
Exim als debian Standard-MTA verlangt nicht unbedingt eine .forward Datei um procmail aufzurufen. In der Grundeinstellung ist das schon in
der exim.conf enthalten.

Gruß myx

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 30.10.2002 20:46:37

myx hat geschrieben:@pdreker
Exim als debian Standard-MTA verlangt nicht unbedingt eine .forward Datei um procmail aufzurufen. In der Grundeinstellung ist das schon in
der exim.conf enthalten.
Da ich mein Config Dateien für alle meine UNIX Accounts über CVS manage, und nicht überall exim läuft, nehme ich lieber die portable Lösung, die auf allen MTAs funktioniert.

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Antworten