Postfix, MYSQL, Procmail und Cyrus unter Suse 9.3?
Hallo zusammen, nach einem Festplattencrash mit anschliessendem Datenverlust melde ich mich wieder mal zu diesem Thema bei Euch. Ich hatte bereits vor 14 Tagen einen Thread hier in der Liste, der genau dieses Thema behandelte. Andreas Winkelmann hatte mir damals ein ganzes Stück weitergeholfen, aber leider funktioniert das ganze noch nicht. Wir hatten damals den Mail-Server soweit, daß "deliver" die Mails eigentlich ausliefern sollte. Aber leider funktioniert das Ganze nicht. In meiner Log-Datei für "procmail" stehen leider nach wie vor folgende Einträge 4747 procmail: Program failure (65) of "/usr/lib/cyrus/bin/deliver" 4748 Subject: RulesDuJour Run Summary on linux 4749 Folder: /usr/lib/cyrus/bin/deliver -r root@xxx.de -a cat 4511 4750 procmail: Program failure (65) of "/usr/lib/cyrus/bin/deliver" 4751 Subject: Undelivered Mail Returned to Sender 4752 Folder: /usr/lib/cyrus/bin/deliver -r MAILER-DAEMON -a catachall. cms 6288 4753 procmail: Program failure (65) of "/usr/lib/cyrus/bin/deliver" 4754 Subject: RulesDuJour Run Summary on linux 4755 Folder: /usr/lib/cyrus/bin/deliver -r root@xxx.de -a cat 4511 4756 procmail: Program failure (65) of "/usr/lib/cyrus/bin/deliver" 4757 Subject: Undelivered Mail Returned to Sender 4758 Folder: /usr/lib/cyrus/bin/deliver -r MAILER-DAEMON -a catachall. cms 6288 Ich habe mir zusätzlich zum Testen eine Textdatei angelegt und versucht, diese direkt über "deliver" ausliefern zu lassen. Dazu habe ich folgenden Befehl benutzt: linux:/var/log # /usr/lib/cyrus/bin/deliver -m irgendein_angelegtes_konto@xxx.de < testmail Allerdings hat "deliver" die Auslieferung mit dem Hinweis verweigert, daß die Mailbox nicht existiert. Die Mailbox existiert jedoch und ich sehe sie sowohl im cyradm über die Konsole, als auch über den web-cyradm im Browser. Mein System: Suse 9.3 Postfix 2.2.1 mit MYSQL-Unterstützung Cyrus 2.2.12 mit installiertem web-cyradmin Procmail 3.22 Spamassasssin 3.0.4 MYSQL 4.1.10a Ich habe den Server über das Howto unter http://www.postfix-howto.de/ eingerichtet und alles so gemacht, wie vorgeschrieben. Die Packages habe ich halt nicht selber compiliert, sondern bis auf Postfix, auf die vorhandenen Pakete zurückgegriffen. Postfix selbst habe ich mit einem vorkompilierten Package upgedated, damit ich die MYSQL-Unterstützung erhalte. Wäre super, wenn mir jemand weiterhelfen könnte, da meine Kenntnisse hier sehr begrenzt sind und ich momentan keinen Anhaltspunkt habe, wo ich noch suchen könnte, bzw. was geändert werden muß. Gruß + Danke Udo
Am Wednesday 18 January 2006 15:20 schrieb udo.gerhards@genion.de:
nach einem Festplattencrash mit anschliessendem Datenverlust melde ich mich wieder mal zu diesem Thema bei Euch. Ich hatte bereits vor 14 Tagen einen Thread hier in der Liste, der genau dieses Thema behandelte. Andreas Winkelmann hatte mir damals ein ganzes Stück weitergeholfen, aber leider funktioniert das ganze noch nicht.
Wir hatten damals den Mail-Server soweit, daß "deliver" die Mails eigentlich ausliefern sollte. Aber leider funktioniert das Ganze nicht. In meiner Log-Datei für "procmail" stehen leider nach wie vor folgende Einträge
4747 procmail: Program failure (65) of "/usr/lib/cyrus/bin/deliver" 4748 Subject: RulesDuJour Run Summary on linux 4749 Folder: /usr/lib/cyrus/bin/deliver -r root@xxx.de -a cat 4511
Im Aufruf fehlt was, scheinbar stimmt was mit Deiner procmailrc nicht, evtl auch mit der Übergabe von Postfix. Da das vor kurzem schonmal war, dürftest Du alles dazu im Listen-Archiv finden. Siehe (ff): http://lists.suse.com/archive/suse-linux/2006-Jan/0337.html Btw, solltest Du von Postfix aus lmtp in Erwägung ziehen und wenn Du noch filtern willst, nimm sieve. Dazu gibt es aber auch ne Menge im Archiv. -- Andreas
Andreas Winkelmann schrieb:
Am Wednesday 18 January 2006 15:20 schrieb udo.gerhards@genion.de:
nach einem Festplattencrash mit anschliessendem Datenverlust melde ich mich wieder mal zu diesem Thema bei Euch. Ich hatte bereits vor 14 Tagen einen Thread hier in der Liste, der genau dieses Thema behandelte. Andreas Winkelmann hatte mir damals ein ganzes Stück weitergeholfen, aber leider funktioniert das ganze noch nicht.
Wir hatten damals den Mail-Server soweit, daß "deliver" die Mails eigentlich ausliefern sollte. Aber leider funktioniert das Ganze nicht. In meiner Log-Datei für "procmail" stehen leider nach wie vor folgende Einträge
4747 procmail: Program failure (65) of "/usr/lib/cyrus/bin/deliver" 4748 Subject: RulesDuJour Run Summary on linux 4749 Folder: /usr/lib/cyrus/bin/deliver -r root@xxx.de -a cat 4511
Im Aufruf fehlt was, scheinbar stimmt was mit Deiner procmailrc nicht, evtl auch mit der Übergabe von Postfix.
Da das vor kurzem schonmal war, dürftest Du alles dazu im Listen-Archiv finden. Siehe (ff):
http://lists.suse.com/archive/suse-linux/2006-Jan/0337.html
Btw, solltest Du von Postfix aus lmtp in Erwägung ziehen und wenn Du noch filtern willst, nimm sieve. Dazu gibt es aber auch ne Menge im Archiv.
Hallo zusammen, ich komme leider mit dem Problem einfach nicht weiter.Die Mails werden nach wie vor nicht korrekt ausgeliefert, sofern sie an den Mailserver geschickt werden. Der Test mit "deliver" über die Konsole hingegen funktioniert jetzt allerdings. Irgendwo ist immer noch der Wurm drin. Ich habe damals alle Konfigurationen so eingestellt, wie wir es damals im anderen Thread besprochen hatten. Aber es funktioniert nicht. Ich poste hier nochmal die procmail.rc. Vielleicht findet sich ja noch jemand, der mir weiterhelfen kann: 1 # Procmail 2 3 SENDER = $1 4 RECIPIENT = $2 5 MAILBOX = $3 6 USER = $4 7 EXTENSION = $5 8 9 LOGFILE = "/var/log/procmail" 10 VERBOSE = off 11 12 # Mailbox-Zustellung 13 DELIVERMAIL = "/usr/lib/cyrus/bin/deliver" 14 INBOX="$DELIVERMAIL -r $SENDER -a $USER -m $EXTENSION $USER" 15 SPAM="$DELIVERMAIL -e -a $USER -q -m user.$MAILBOX.spam" 16 17 # "From" Zeile loeschen, sonst funktioniert cydeliver nicht 18 :0fw 19 | formail -f -I "From " 20 21 :0fw 22 * < 256000 23 | /usr/bin/spamc -u filter 24 25 # --- score = 11 26 27 :0 w 28 * ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\* 29 | $SPAM 30 31 32 # Zustellung zur Mailbox 33 :0w 34 | $INBOX 35 36 # schluss 37 :0w 38 { 39 EXITCODE = $? 40 HOST 41 } Wäre super, wenn ich das Thema bald abschliessen könnte.*frust* Gruß + Danke Udo
Udo Gerhards wrote:
Hallo zusammen,
ich komme leider mit dem Problem einfach nicht weiter.Die Mails werden nach wie vor nicht korrekt ausgeliefert, sofern sie an den Mailserver geschickt werden. Der Test mit "deliver" über die Konsole hingegen funktioniert jetzt allerdings. Irgendwo ist immer noch der Wurm drin. Ich habe damals alle Konfigurationen so eingestellt, wie wir es damals im anderen Thread besprochen hatten. Aber es funktioniert nicht.
Ich poste hier nochmal die procmail.rc. Vielleicht findet sich ja noch jemand, der mir weiterhelfen kann:
Schicke auch gleich mal den entsprechenden Eintrag aus der master.cf, sonst wird es schwierig. Ich würde generell erst einmal versuchen, mit dem Cyrus-Transport zu arbeiten, und wenn dieser funktioniert, dann den Tranport auf procmail zu übertragen, wenn das notwendig ist. Immer einen Schritt nach dem anderen. (^-^) Sandy -- Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com
Sandy Drobic schrieb:
Udo Gerhards wrote:
Hallo zusammen,
ich komme leider mit dem Problem einfach nicht weiter.Die Mails werden nach wie vor nicht korrekt ausgeliefert, sofern sie an den Mailserver geschickt werden. Der Test mit "deliver" über die Konsole hingegen funktioniert jetzt allerdings. Irgendwo ist immer noch der Wurm drin. Ich habe damals alle Konfigurationen so eingestellt, wie wir es damals im anderen Thread besprochen hatten. Aber es funktioniert nicht.
Ich poste hier nochmal die procmail.rc. Vielleicht findet sich ja noch jemand, der mir weiterhelfen kann:
Schicke auch gleich mal den entsprechenden Eintrag aus der master.cf, sonst wird es schwierig.
Ich würde generell erst einmal versuchen, mit dem Cyrus-Transport zu arbeiten, und wenn dieser funktioniert, dann den Tranport auf procmail zu übertragen, wenn das notwendig ist. Immer einen Schritt nach dem anderen. (^-^)
Sandy
Hallo Sandy, hier ist noch der Eintrag aus der master.cf: 68 procmail unix - n n - - pipe -v 69 #flags=R user=nobody argv=/usr/bin/procmail -t -m /etc/procmailrc ${sender} ${recipient} 70 flags=R user=cyrus argv=/usr/bin/procmail -t -m /etc/procmailrc ${sender} ${recipient} ${mailbox} ${user} ${extension} 71 tlsmgr unix - - n 1000? 1 tlsmgr Na ja, ich hatte gedacht, ich halt mich ans Tutorial, dann klappts schon, aber ... Gruß + Danke Udo
Udo Gerhards schrieb:
Sandy Drobic schrieb:
Udo Gerhards wrote:
Hallo zusammen,
ich komme leider mit dem Problem einfach nicht weiter.Die Mails werden nach wie vor nicht korrekt ausgeliefert, sofern sie an den Mailserver geschickt werden. Der Test mit "deliver" über die Konsole hingegen funktioniert jetzt allerdings. Irgendwo ist immer noch der Wurm drin. Ich habe damals alle Konfigurationen so eingestellt, wie wir es damals im anderen Thread besprochen hatten. Aber es funktioniert nicht.
Ich poste hier nochmal die procmail.rc. Vielleicht findet sich ja noch jemand, der mir weiterhelfen kann:
Schicke auch gleich mal den entsprechenden Eintrag aus der master.cf, sonst wird es schwierig.
Ich würde generell erst einmal versuchen, mit dem Cyrus-Transport zu arbeiten, und wenn dieser funktioniert, dann den Tranport auf procmail zu übertragen, wenn das notwendig ist. Immer einen Schritt nach dem anderen. (^-^)
Sandy
Hallo Sandy,
hier ist noch der Eintrag aus der master.cf:
68 procmail unix - n n - - pipe -v 69 #flags=R user=nobody argv=/usr/bin/procmail -t -m /etc/procmailrc ${sender} ${recipient} 70 flags=R user=cyrus argv=/usr/bin/procmail -t -m /etc/procmailrc ${sender} ${recipient} ${mailbox} ${user} ${extension} 71 tlsmgr unix - - n 1000? 1 tlsmgr
Na ja, ich hatte gedacht, ich halt mich ans Tutorial, dann klappts schon, aber ...
Gruß + Danke
Udo
Hallo Sandy, hallo Werner, ich habe noch was interessantes gefunden. Und zwar werden lt. /var/log/mail bei der Übergabe von Postfix an Procmail folgende Variablen übergeben 58183 Jan 25 12:51:48 linux postfix/pipe[28079]: dict_eval: const /usr/bin/procmail 58184 Jan 25 12:51:48 linux postfix/pipe[28079]: dict_eval: const -t 58185 Jan 25 12:51:48 linux postfix/pipe[28079]: dict_eval: const -m 58186 Jan 25 12:51:48 linux postfix/pipe[28079]: dict_eval: const /etc/procmailrc 58187 Jan 25 12:51:48 linux postfix/pipe[28079]: dict_eval: expand ${sender} -> MAILER-DAEMON 58188 Jan 25 12:51:48 linux postfix/pipe[28079]: dict_eval: expand ${recipient} -> catachall.cms-solutions.info@cms-solutions.info 58189 Jan 25 12:51:48 linux postfix/pipe[28079]: dict_eval: expand ${mailbox} -> catachall.cms-solutions.info 58190 Jan 25 12:51:48 linux postfix/pipe[28079]: dict_eval: expand ${user} -> catachall.cms-solutions.info So wie ich das jetzt verstehe, wird die Variable ${user} mit "catachall.cms-solutions.info" belegt und an Procmail übergeben. In der procmailrc steht dann folgender Aufruf: 3 SENDER = $1 4 RECIPIENT = $2 5 MAILBOX = $3 6 USER = $4 7 EXTENSION = $5 8 9 LOGFILE = "/var/log/procmail" 10 VERBOSE = off 11 12 # Mailbox-Zustellung 13 DELIVERMAIL = "/usr/lib/cyrus/bin/deliver" 14 INBOX="$DELIVERMAIL -r $SENDER -a $USER -m $EXTENSION $USER" In dem Fall würde sich doch jetzt procmail gegenüber deliver als User "catachall.cms-solutions.info" authentifizieren oder? Bei meinen Tests über die Kommandozeile habe ich aber immer folgenden Befehl benutzt: /usr/lib/cyrus/bin/deliver -a cyrus -m user/info.brillenmacherei.de < testmail Der Befehl wurde von der Kommandozeile aus erfolgreich ausgeführt. Da war der User "cyrus". Kann es nicht sein, daß "deliver" den User "catachall.cms-solutions.info" nicht kennt und deswegen die Auslieferung der Mails verweigert? Gruß Udo
Udo Gerhards wrote:
hier ist noch der Eintrag aus der master.cf:
68 procmail unix - n n - - pipe -v 69 #flags=R user=nobody argv=/usr/bin/procmail -t -m /etc/procmailrc ${sender} ${recipient} 70 flags=R user=cyrus argv=/usr/bin/procmail -t -m /etc/procmailrc ${sender} ${recipient} ${mailbox} ${user} ${extension} 71 tlsmgr unix - - n 1000? 1 tlsmgr
Gut, mit den ganzen Zahlen werde ich da nicht richtig schlau raus, was genau der Eintrag ist. aber ich denke, dass bekommen wir auch im procmailrc heraus.
Na ja, ich hatte gedacht, ich halt mich ans Tutorial, dann klappts schon, aber ...
Gruß + Danke
Udo
Hallo Sandy, hallo Werner,
ich habe noch was interessantes gefunden. Und zwar werden lt. /var/log/mail bei der Übergabe von Postfix an Procmail folgende Variablen übergeben
58183 Jan 25 12:51:48 linux postfix/pipe[28079]: dict_eval: const /usr/bin/procmail 58184 Jan 25 12:51:48 linux postfix/pipe[28079]: dict_eval: const -t 58185 Jan 25 12:51:48 linux postfix/pipe[28079]: dict_eval: const -m 58186 Jan 25 12:51:48 linux postfix/pipe[28079]: dict_eval: const /etc/procmailrc 58187 Jan 25 12:51:48 linux postfix/pipe[28079]: dict_eval: expand ${sender} -> MAILER-DAEMON 58188 Jan 25 12:51:48 linux postfix/pipe[28079]: dict_eval: expand ${recipient} -> catachall.cms-solutions.info@cms-solutions.info 58189 Jan 25 12:51:48 linux postfix/pipe[28079]: dict_eval: expand ${mailbox} -> catachall.cms-solutions.info 58190 Jan 25 12:51:48 linux postfix/pipe[28079]: dict_eval: expand ${user} -> catachall.cms-solutions.info
So wie ich das jetzt verstehe, wird die Variable ${user} mit "catachall.cms-solutions.info" belegt und an Procmail übergeben. In der procmailrc steht dann folgender Aufruf:
3 SENDER = $1 4 RECIPIENT = $2 5 MAILBOX = $3 6 USER = $4 7 EXTENSION = $5 8 9 LOGFILE = "/var/log/procmail" 10 VERBOSE = off 11 12 # Mailbox-Zustellung 13 DELIVERMAIL = "/usr/lib/cyrus/bin/deliver" 14 INBOX="$DELIVERMAIL -r $SENDER -a $USER -m $EXTENSION $USER"
In dem Fall würde sich doch jetzt procmail gegenüber deliver als User "catachall.cms-solutions.info" authentifizieren oder? Bei meinen Tests über die Kommandozeile habe ich aber immer folgenden Befehl benutzt:
/usr/lib/cyrus/bin/deliver -a cyrus -m user/info.brillenmacherei.de < testmail
Da der User cyrus als Besitzer aller Mailboxen fungiert, sollte dieser auch die Auslieferung übernehmen. Das ist in Ordnung. Solange der User $USER auch Schreibrechte auf die Mailbox hat, geht das ja auch in Ordnung. Aber was passiert, wenn er dummerweise keine Schreibrechte hat? Deshalb würde ich den Auth-User fest auf den Admin-User cyrus legen, damit geht man sicher. Auch im Transport cyrus, der in Postfix schon angelegt ist, wird der user cyrus verwendet.
Der Befehl wurde von der Kommandozeile aus erfolgreich ausgeführt. Da war der User "cyrus". Kann es nicht sein, daß "deliver" den User "catachall.cms-solutions.info" nicht kennt und deswegen die Auslieferung der Mails verweigert?
Könnte sein, glaube ich aber nicht unbedingt. Wie sind die User denn bei dir angelegt? Aus Systemuser? mit Domainnamen? Wenn du den user cyrus als auth-user nimmst, ist das jedenfalls davon unabhängig. Der man page von deliver nach scheint das voreingestellte Verzeichnis für user hart verdrahtet zu sein. Wenn er eine Erweiterung vor dem Mailboxnamen sieht, will er nach user.mailbox.extension einliefern. Jedenfalls scheint es mit dem Befehl "/usr/lib/cyrus/bin/deliver -a cyrus -r $sender -m $extension $recipient" zu funktionieren. Noch weniger schön finde ich, dass das intern von Cyrus offensichtlich über sieve abläuft. Und wenn man schon sieve zur Filterung einsetzt, funktioniert das mit der Erweiterung nicht mehr. Ist also eine Entscheidung, die man treffen muss: Entweder Filterung mit einem Sievescript, oder die Einsortierung über die Extension. Wenn man nicht autocreate_mailbox verwendet, dann muss der Ordner anscheinen vorher angelegt sein. Sandy -- Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com
Am Wednesday 25 January 2006 13:12 schrieb Udo Gerhards:
nach einem Festplattencrash mit anschliessendem Datenverlust melde ich mich wieder mal zu diesem Thema bei Euch. Ich hatte bereits vor 14 Tagen einen Thread hier in der Liste, der genau dieses Thema behandelte. Andreas Winkelmann hatte mir damals ein ganzes Stück weitergeholfen, aber leider funktioniert das ganze noch nicht.
Wir hatten damals den Mail-Server soweit, daß "deliver" die Mails eigentlich ausliefern sollte. Aber leider funktioniert das Ganze nicht. In meiner Log-Datei für "procmail" stehen leider nach wie vor folgende Einträge
4747 procmail: Program failure (65) of "/usr/lib/cyrus/bin/deliver" 4748 Subject: RulesDuJour Run Summary on linux 4749 Folder: /usr/lib/cyrus/bin/deliver -r root@xxx.de -a cat 4511
Im Aufruf fehlt was, scheinbar stimmt was mit Deiner procmailrc nicht, evtl auch mit der Übergabe von Postfix.
Da das vor kurzem schonmal war, dürftest Du alles dazu im Listen-Archiv finden. Siehe (ff):
http://lists.suse.com/archive/suse-linux/2006-Jan/0337.html
Btw, solltest Du von Postfix aus lmtp in Erwägung ziehen und wenn Du noch filtern willst, nimm sieve. Dazu gibt es aber auch ne Menge im Archiv.
Hallo zusammen,
ich komme leider mit dem Problem einfach nicht weiter.Die Mails werden nach wie vor nicht korrekt ausgeliefert, sofern sie an den Mailserver geschickt werden. Der Test mit "deliver" über die Konsole hingegen funktioniert jetzt allerdings. Irgendwo ist immer noch der Wurm drin. Ich habe damals alle Konfigurationen so eingestellt, wie wir es damals im anderen Thread besprochen hatten. Aber es funktioniert nicht.
Ich poste hier nochmal die procmail.rc. Vielleicht findet sich ja noch jemand, der mir weiterhelfen kann:
1 # Procmail 2 3 SENDER = $1 4 RECIPIENT = $2 5 MAILBOX = $3 6 USER = $4 7 EXTENSION = $5
Ich hatte hier keine Leerzeichen. Also VARIABLE=$x
8 9 LOGFILE = "/var/log/procmail" 10 VERBOSE = off
11 12 # Mailbox-Zustellung 13 DELIVERMAIL = "/usr/lib/cyrus/bin/deliver" 14 INBOX="$DELIVERMAIL -r $SENDER -a $USER -m $EXTENSION $USER" 15 SPAM="$DELIVERMAIL -e -a $USER -q -m user.$MAILBOX.spam"
Lass mal die """ weg.
16 17 # "From" Zeile loeschen, sonst funktioniert cydeliver nicht 18 :0fw 19 | formail -f -I "From " 20 21 :0fw 22 * < 256000 23 | /usr/bin/spamc -u filter 24 25 # --- score = 11 26 27 :0 w 28 * ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\* 29 | $SPAM 30 31 32 # Zustellung zur Mailbox 33 :0w 34 | $INBOX 35 36 # schluss 37 :0w 38 { 39 EXITCODE = $? 40 HOST 41 }
Wäre super, wenn ich das Thema bald abschliessen könnte.*frust*
Änder das mal und zeige das Log. -- Andreas
participants (4)
-
Andreas Winkelmann
-
Sandy Drobic
-
Udo Gerhards
-
udo.gerhards@genion.de