Postfix, Cyrus und automatische Mailsortierung
Hallo zusammen, ich wollte mir einen eigenen lokalen IMAP-Server aufsetzen und benutze dazu cyrus und postfix (von der SuSE 8.0 CD). Cyrus installieren: kein Problem. Postfix dazu zu bewegen, Mails an Cyrus weiterzuleiten: auch kein Problem (dank readme.suse) doof: alle Mail landet in der Inbox und kMail kann IMAP-boxen nicht filtern. Also dachte ich mir, dass man doch procmail dazwischen schalten könnte. Nach http://www.linuxworld.com/site-stories/2002/0318.ldap1.html ff. änderte ich in /etc/postfix/main.cf mailbox_transport = procmail der Eintrag in master.cf war schon von SuSE gesetzt. Also noch eine /etc/procmailrc erstellt: DELIVERMAIL="/usr/lib/cyrus/bin/deliver" FORMAIL="/usr/bin/formail" LOGFILE="/var/log/imap/$USER.log" IMAP="$DELIVERMAIL -e -a $USER -m user.$USER" FROM=`formail -x To:` TO=`formail -x From:` SUBJECT=`formail -x Subject:` STRIP="$FORMAIL -k" INCLUDERC=/etc/procmailrc.$USER EXITCODE= :0w | $DELIVERMAIL -a $USER -e -q -m $EXTENSION $USER :0w | $DELIVERMAIL -a $USER -e -q $USER :0 e { EXITCODE=$? HOST } /etc/procmailrc.tfranz sieht so aus: :0 * ^X-Mailinglist: suse-linux | $IMAP.testbox jeoch funktioniert das alles nicht so richtig. /var/log/mail sagt: Apr 27 14:17:49 doug procmail[12048]: Error while writing to "/var/log/imap/tfranz.log" Apr 27 14:17:49 doug postfix/pipe[12036]: A0E972721F: to=<tfranz@localhost.doug.moleman>, relay=procmail, delay=1, status=deferred (temporary failure. Command output: procmail: Error while writing to "/var/log/imap/tfranz.log" couldn't connect to lmtpd: Invalid argument_ procmail: Error while writing to "/usr/lib/cyrus/bin/deliver" couldn't connect to lmtpd: Invalid argument_ procmail: Error while writing to "/usr/lib/cyrus/bin/deliver" procmail: Program failure (75) of "/usr/lib/cyrus/bin/deliver" couldn't connect to lmtpd: Invalid argument_ procmail: Program failure (75) of "/usr/lib/cyrus/bin/deliver" ) Apr 27 14:17:50 doug postfix/smtpd[12022]: disconnect from localhost[127.0.0.1] Apr 27 14:17:50 doug postfix/smtpd[12022]: fatal: accept connection: Socket operation on non-socket Apr 27 14:17:51 doug postfix/master[9131]: warning: process /usr/lib/postfix/smtpd pid 12022 exit status 1 Warum denkt das Mailprogramm, das mein rechner localhost.doug.moleman heisst? (doug.moleman wäre richtig) Warum kann er nicht zum lmtpd connecten? Ohne Procmail klappts ja. Weiss jemand Rat? Gibt es andere, evtl. einfachere Möglichkeiten, seine Mail einzusortieren? Tausend Dank im Voraus Tim
Hallo, Tim Franz <suse-linux@moleman.de> writes:
Hallo zusammen,
ich wollte mir einen eigenen lokalen IMAP-Server aufsetzen und benutze dazu cyrus und postfix (von der SuSE 8.0 CD).
Cyrus installieren: kein Problem. Postfix dazu zu bewegen, Mails an Cyrus weiterzuleiten: auch kein Problem (dank readme.suse)
doof: alle Mail landet in der Inbox und kMail kann IMAP-boxen nicht filtern. Also dachte ich mir, dass man doch procmail dazwischen schalten könnte.
Nach http://www.linuxworld.com/site-stories/2002/0318.ldap1.html ff. änderte ich in /etc/postfix/main.cf
mailbox_transport = procmail
der Eintrag in master.cf war schon von SuSE gesetzt. Also noch eine /etc/procmailrc erstellt:
[...] Du musst mit craetemailbox zuerst die Unterverzeichnisse anlegen. Also z.B. createmailbox user.dieter.suse-linux -Dieter -- Dieter Kluenter | Systemberatung Tel:040.64861967 | Fax: 040.64891521 mailto: dkluenter@schevolution.com http://www.schevolution.com/tour
--On Sonntag, 28. April 2002 15:16 +0200 Tim Franz <suse-linux@moleman.de> wrote:
Hallo zusammen,
ich wollte mir einen eigenen lokalen IMAP-Server aufsetzen und benutze dazu cyrus und postfix (von der SuSE 8.0 CD).
Cyrus installieren: kein Problem. Postfix dazu zu bewegen, Mails an Cyrus weiterzuleiten: auch kein Problem (dank readme.suse)
doof: alle Mail landet in der Inbox und kMail kann IMAP-boxen nicht filtern. Also dachte ich mir, dass man doch procmail dazwischen schalten könnte.
Nach http://www.linuxworld.com/site-stories/2002/0318.ldap1.html ff. änderte ich in /etc/postfix/main.cf
mailbox_transport = procmail
der Eintrag in master.cf war schon von SuSE gesetzt. Also noch eine /etc/procmailrc erstellt:
DELIVERMAIL="/usr/lib/cyrus/bin/deliver"
Stimmt der Pfad ? Bei mir (SuSE 7.3) ist das /usr/cyrus/bin/deliver!
FORMAIL="/usr/bin/formail" LOGFILE="/var/log/imap/$USER.log"
Existiert das Verzeichnis /var/log/imap und die dazu gehörenden Dateien, darf postfix in dieses Verzeichnis und diese Dateien schreiben?
IMAP="$DELIVERMAIL -e -a $USER -m user.$USER" FROM=`formail -x To:` TO=`formail -x From:` SUBJECT=`formail -x Subject:` STRIP="$FORMAIL -k"
INCLUDERC=/etc/procmailrc.$USER
EXITCODE=
:0w | $DELIVERMAIL -a $USER -e -q -m $EXTENSION $USER
:0w | $DELIVERMAIL -a $USER -e -q $USER
:0 e { EXITCODE=$? HOST }
/etc/procmailrc.tfranz sieht so aus:
:0 * ^X-Mailinglist: suse-linux | $IMAP.testbox
Hast du mit cyradmin die Mailbox 'testbox' fuer den user tfranz erstellt?
jeoch funktioniert das alles nicht so richtig. /var/log/mail sagt:
Apr 27 14:17:49 doug procmail[12048]: Error while writing to "/var/log/imap/tfranz.log" Apr 27 14:17:49 doug postfix/pipe[12036]: A0E972721F: to=<tfranz@localhost.doug.moleman>, relay=procmail, delay=1, status=deferred (temporary failure. Command output: procmail: Error while writing to "/var/log/imap/tfranz.log" couldn't connect to lmtpd: Invalid argument_ procmail: Error while writing to "/usr/lib/cyrus/bin/deliver" couldn't connect to lmtpd: Invalid argument_ procmail: Error while writing to "/usr/lib/cyrus/bin/deliver" procmail: Program failure (75) of "/usr/lib/cyrus/bin/deliver" couldn't connect to lmtpd: Invalid argument_ procmail: Program failure (75) of "/usr/lib/cyrus/bin/deliver" ) Apr 27 14:17:50 doug postfix/smtpd[12022]: disconnect from localhost[127.0.0.1] Apr 27 14:17:50 doug postfix/smtpd[12022]: fatal: accept connection: Socket operation on non-socket Apr 27 14:17:51 doug postfix/master[9131]: warning: process /usr/lib/postfix/smtpd pid 12022 exit status 1
Warum denkt das Mailprogramm, das mein rechner localhost.doug.moleman heisst? (doug.moleman wäre richtig)
Was hast du in der main.cf als myhostname und / oder mydomanin eingetragen?
Warum kann er nicht zum lmtpd connecten? Ohne Procmail klappts ja.
Weiss jemand Rat? Gibt es andere, evtl. einfachere Möglichkeiten, seine Mail einzusortieren?
Ich habe das in dieser Art seit einiger Zeit am laufen und es laeuft..... Carsten
Tausend Dank im Voraus Tim
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Hi Carsten,
DELIVERMAIL="/usr/lib/cyrus/bin/deliver"
Stimmt der Pfad ? Bei mir (SuSE 7.3) ist das /usr/cyrus/bin/deliver!
Ja, der Pfad stimmt. SuSE hat das gemäß FHS in der 8.0 geändert.
FORMAIL="/usr/bin/formail" LOGFILE="/var/log/imap/$USER.log"
Existiert das Verzeichnis /var/log/imap und die dazu gehörenden Dateien, darf postfix in dieses Verzeichnis und diese Dateien schreiben?
Ja, existieren.
* ^X-Mailinglist: suse-linux
| $IMAP.testbox
Hast du mit cyradmin die Mailbox 'testbox' fuer den user tfranz erstellt?
Nicht mit cyradm, sondern mit kmail, hab aber gerade nachgeschaut, die Mailboxen existieren wirklich.
Warum denkt das Mailprogramm, das mein rechner localhost.doug.moleman heisst? (doug.moleman wäre richtig)
Was hast du in der main.cf als myhostname und / oder mydomanin eingetragen?
myhostname = doug mydomain = doug.moleman
Warum kann er nicht zum lmtpd connecten? Ohne Procmail klappts ja.
Weiss jemand Rat? Gibt es andere, evtl. einfachere Möglichkeiten, seine Mail einzusortieren?
Ich habe das in dieser Art seit einiger Zeit am laufen und es laeuft.....
magst Du mal deine /etc/cyrus.conf posten? was steht da drin? Bei mir: # standard standalone server implementation START { # do not delete these entries! mboxlist cmd="ctl_mboxlist -r" deliver cmd="ctl_deliver -r" # this is only necessary if using idled for IMAP IDLE # idled cmd="idled" } # UNIX sockets start with a slash and are put into /var/imap/socket SERVICES { # add or remove based on preferences imap cmd="imapd" listen="imap" prefork=0 # imaps cmd="imapd -s" listen="imaps" prefork=0 pop3 cmd="pop3d" listen="pop3" prefork=0 #pop3s cmd="pop3d -s" listen="pop3s" prefork=0 sieve cmd="timsieved" listen="sieve" prefork=0 # at least one LMTP is required for delivery # lmtp cmd="lmtpd" listen="lmtp" prefork=0 # lmtpunix cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=0 #postfix delivery lmtpunix cmd="lmtpd" listen="/var/spool/postfix/public/lmtp" prefork=1 } EVENTS { # this is required checkpoint cmd="ctl_mboxlist -c" period=30 # this is only necessary if using duplicate delivery suppression delprune cmd="ctl_deliver -E 3" period=1440 # Uncomment the next entry, if you want to automatically remove # old messages of EVERY user. # This example calls ipurge every 60 minutes and ipurge will delete # ALL messages older then 30 days. # enter 'man 8 ipurge' for more details # cleanup cmd="ipurge -d 30 -f" period=60 } Tim
--On Sonntag, 28. April 2002 23:24 +0200 Tim Franz <suse-linux@moleman.de> wrote:
Hi Carsten,
DELIVERMAIL="/usr/lib/cyrus/bin/deliver"
Stimmt der Pfad ? Bei mir (SuSE 7.3) ist das /usr/cyrus/bin/deliver!
Ja, der Pfad stimmt. SuSE hat das gemäß FHS in der 8.0 geändert.
FORMAIL="/usr/bin/formail" LOGFILE="/var/log/imap/$USER.log"
Existiert das Verzeichnis /var/log/imap und die dazu gehörenden Dateien, darf postfix in dieses Verzeichnis und diese Dateien schreiben?
Ja, existieren.
* ^X-Mailinglist: suse-linux
| $IMAP.testbox
Hast du mit cyradmin die Mailbox 'testbox' fuer den user tfranz erstellt?
Nicht mit cyradm, sondern mit kmail, hab aber gerade nachgeschaut, die Mailboxen existieren wirklich.
Warum denkt das Mailprogramm, das mein rechner localhost.doug.moleman heisst? (doug.moleman wäre richtig)
Was hast du in der main.cf als myhostname und / oder mydomanin eingetragen?
myhostname = doug mydomain = doug.moleman
Warum kann er nicht zum lmtpd connecten? Ohne Procmail klappts ja.
Weiss jemand Rat? Gibt es andere, evtl. einfachere Möglichkeiten, seine Mail einzusortieren?
Ich habe das in dieser Art seit einiger Zeit am laufen und es laeuft.....
magst Du mal deine /etc/cyrus.conf posten? was steht da drin?
Bei mir:
# standard standalone server implementation
START { # do not delete these entries! mboxlist cmd="ctl_mboxlist -r" deliver cmd="ctl_deliver -r"
# this is only necessary if using idled for IMAP IDLE # idled cmd="idled" }
# UNIX sockets start with a slash and are put into /var/imap/socket
SERVICES { # add or remove based on preferences imap cmd="imapd" listen="imap" prefork=0 # imaps cmd="imapd -s" listen="imaps" prefork=0 pop3 cmd="pop3d" listen="pop3" prefork=0 # pop3s cmd="pop3d -s" listen="pop3s" prefork=0 sieve cmd="timsieved" listen="sieve" prefork=0
# at least one LMTP is required for delivery # lmtp cmd="lmtpd" listen="lmtp" prefork=0 # lmtpunix cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=0 # postfix delivery lmtpunix cmd="lmtpd" listen="/var/spool/postfix/public/lmtp" prefork=1 }
Meine cyrus.conf sieht bis auf die Zeile lmtpunix ... gleich aus. Bei steht dort: lmtpunix cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=0 Also das, was bei dir auskommentiert ist. Carsten
Meine cyrus.conf sieht bis auf die Zeile lmtpunix ... gleich aus. Bei steht dort: lmtpunix cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=0
Also das, was bei dir auskommentiert ist.
hab ich testweise schon länst wieder umgestellt. Hab auch Die beteiligten Pakete deinstalliert, Konfigurationsdateien gelöscht und dann nochmal mit den Defaulteinstellungen angefangen. Es endet immer mit Fehlern in /var/log/imap/tfranz (wenigstens das loggen klappt jetzt) couldn't connect to lmtpd: Invalid argument procmail: Error while writing to "/usr/lib/cyrus/bin/deliver" procmail: Program failure (75) of "/usr/lib/cyrus/bin/deliver" Subject: Betreffzeile Folder: /usr/lib/cyrus/bin/deliver -a tfranz -e -q tfranz 1596 Da ich überall die default-Einstellungen verwende, müsste der Fehler irgendwo in der procmailrc zu finden sein. nur wo? Tim
Guten Morgen Hab den thread nicht mitverfolgt aber so wie es für mich aussieht. Ist es SuSE8.0
Meine cyrus.conf sieht bis auf die Zeile lmtpunix ... gleich aus. Bei steht dort: lmtpunix cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=0 lmtpunix cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=0 Sonst kann der lmtp seinen socket nicht schreiben, da es das Verzeichnis nicht gibt. mehr sieht man auf Konsole 10 oder dmesg
Grüße Torsten
Hi Torsten,
Hab den thread nicht mitverfolgt aber so wie es für mich aussieht. Ist es SuSE8.0
Genau so ist es. SuSE 8.0, die Geißel der Menschheit bzw. der irgendwohin verschobenen Dateien.
Meine cyrus.conf sieht bis auf die Zeile lmtpunix ... gleich aus. Bei steht dort: lmtpunix cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=0
lmtpunix cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=0 Sonst kann der lmtp seinen socket nicht schreiben, da es das Verzeichnis nicht gibt. mehr sieht man auf Konsole 10 oder dmesg
Tausend Dank, das wars. :-) Tim
Tim Franz wrote:
Hallo zusammen,
ich wollte mir einen eigenen lokalen IMAP-Server aufsetzen und benutze dazu cyrus und postfix (von der SuSE 8.0 CD).
Cyrus installieren: kein Problem. Postfix dazu zu bewegen, Mails an Cyrus weiterzuleiten: auch kein Problem (dank readme.suse)
doof: alle Mail landet in der Inbox und kMail kann IMAP-boxen nicht filtern. Also dachte ich mir, dass man doch procmail dazwischen schalten könnte.
Warum verwendest du nicht sieve? Dafür gibt es auch ein Webfrontend (websieve) welches sehr einfach zu bedienen ist. hth cu Gerald PS: Für die Administration von Cyrus-Imap gibt es auch ein Webfrontend (cyradmin, glaub ich).
Warum verwendest du nicht sieve? Dafür gibt es auch ein Webfrontend (websieve) welches sehr einfach zu bedienen ist.
Und wie binde ich das ein? Die Doku vom Cyrus ist leider völlig veraltet und das Skript installsieve existiert gar nicht mehr. Zu Procmail, Cyrus und Postfix hab ich wenigstens ein paar Howtos gefunden. Tim
Tim Franz wrote:
Warum verwendest du nicht sieve? Dafür gibt es auch ein Webfrontend (websieve) welches sehr einfach zu bedienen ist.
Und wie binde ich das ein? Die Doku vom Cyrus ist leider völlig veraltet und das Skript installsieve existiert gar nicht mehr.
sieve läuft schon wen cyrus läuft. Die scripte fand ich nur in den Sourcen in den Binary-RPMs sind sie nicht dabei. Außerdem heißt das script nicht meh installsieve sondern managesieve, es sie Perlscripte. Ich verwende sie aber nicht, weil es mir zu lästig ist jedesmal, wenn ich da mal was ändern muß, mir die Parametersyntaxe neu bei zu bringen. Websieve ist so einfach zu bedienen wie Netscape, damit lasse ich auch andere User arbeiten.
Zu Procmail, Cyrus und Postfix hab ich wenigstens ein paar Howtos gefunden.
Websieve: www.css.qmw.ac.uk/mail/websieve/ www.css.qmw.ac.uk/mail/websieve/filters.htm www.albany.edu/academic_computing/websieve.html sourceforge.net/projects/websieve Sorry es heist _nicht_ cyradmin sondern cyradm. www.linuxdoc.org/HOWTO/Postfix-Cyrus-Web-cyradm-HOWTO/ www.delouw.ch/linux/web-cyradm/index.php freshmeat.net/releases/80284/ hth cu Gerald
Am Mon, 2002-04-29 um 00.31 schrieb Gerald Goebel:
Tim Franz wrote:
Warum verwendest du nicht sieve? Dafür gibt es auch ein Webfrontend (websieve) welches sehr einfach zu bedienen ist.
Und wie binde ich das ein? Die Doku vom Cyrus ist leider völlig veraltet und das Skript installsieve existiert gar nicht mehr.
sieve läuft schon wen cyrus läuft. Die scripte fand ich nur in den Sourcen in den Binary-RPMs sind sie nicht dabei. Außerdem heißt das script nicht meh installsieve sondern managesieve, es sie Perlscripte. Ich verwende sie aber nicht, weil es mir zu lästig ist jedesmal, wenn ich da mal was ändern muß, mir die Parametersyntaxe neu bei zu bringen. Websieve ist so einfach zu bedienen wie Netscape, damit lasse ich auch andere User arbeiten.
Zumindest bei der 7.3 heißt das script sieveshell.pl. Installsieve und managesieve waren älter, und mit denen hatte ich, soweit ich mich erinnern kann, keinen Erfolg. Bedienung ähnlich ftp. Zeigt sogar das Paßwort während der Eingabe im Klartext an...... Sollte sich z.B. im source-rpm finden. Sieve ist etwas klarer strukturiert und sicherlich einfacher zu erlernen als procmail, allerdings kann man keine Scripte einbinden. Fahre zweigleisig: procmail zur Vorverarbeitung in der Uni, sieve zum Einsortieren zuhause. -- viele Gruesse Rolf Hillen GPG/PGP-key 55BEEFD0
Bin mir mittlerweile zimelich sicher, dass deliver Mist baut. Der direkte Aufruf von deliver ergibt /usr/lib/cyrus/bin/deliver -a tfranz -q tfranz couldn't connect to lmtpd: Invalid argument 421 4.3.0 deliver: couldn't connect to lmtpd Was muss ich wo umstellen, damit deliver funktioniert? Tim
participants (6)
-
Carsten Roehling
-
Dieter Kluenter
-
Gerald Goebel
-
Rolf Hillen
-
Tim Franz
-
Torsten Rosenberger