Page 1 of 1
Postfix -> Procmail -> Cyrus funktioniert nicht
Posted: 2004-05-10 22:22
by schl
Hallo zusammen,
versuche jetzt schon den ganzen abend die o. g. kombination zum laufen zu bringen. aber es haut nicht hin. die mails kommen bis zu procmail und werden dann aber nicht an cyrus ausgeliefert. alle notwendigen logs habe ich hier mal aufgeführt.
habe jetzt schon eine ewigkeit rumgelesen und keine lust mehr. vielleicht weiss ja jemand von euch weiter.
danke schonmal sCHL
/var/log/messages
Code: Select all
May 10 22:14:38 h7185 deliver[7501]: connect(/var/lib/imap/socket/lmtp) failed: Permission denied
/var/log/mail
Code: Select all
May 10 22:14:38 h7185 postfix/smtpd[7490]: connect from chl-virtualwork.com[217.160.222.186]
May 10 22:14:38 h7185 postfix/smtpd[7490]: 6E3CE6C8096: client=chl-virtualwork.com[217.160.222.186]
May 10 22:14:38 h7185 postfix/cleanup[7491]: 6E3CE6C8096: message-id=<001f01c436cb$63be66a0$0200a8c0@CHLKELLER>
May 10 22:14:38 h7185 postfix/qmgr[7201]: 6E3CE6C8096: from=<chl@lange-christian.de>, size=1784, nrcpt=1 (queue active)
May 10 22:14:38 h7185 postfix/smtpd[7490]: disconnect from chl-virtualwork.com[217.160.222.186]
May 10 22:14:38 h7185 spamd[2655]: connection from localhost [127.0.0.1] at port 32921
May 10 22:14:38 h7185 spamd[7500]: info: setuid to nobody succeeded
May 10 22:14:38 h7185 spamd[7500]: processing message <001f01c436cb$63be66a0$0200a8c0@CHLKELLER> for nobody:65534.
May 10 22:14:38 h7185 spamd[7500]: clean message (0.0/5.0) for nobody:65534 in 0.0 seconds, 1783 bytes.
May 10 22:14:38 h7185 postfix/pipe[7494]: 6E3CE6C8096: to=<web1p1@mail.chl-virtualwork.de>, orig_to=<chl@chl-virtualwork.de>, relay=procmail, delay=0, status=deferred (temporary failure)
/var/log/procmail
Code: Select all
couldn't connect to lmtpd: Permission denied^M
procmail: Program failure (75) of "/usr/lib/cyrus/bin/deliver"
Subject: test
Folder: /usr/lib/cyrus/bin/deliver -a -m INBOX 1687
Re: Postfix -> Procmail -> Cyrus funktioniert nicht
Posted: 2004-05-10 22:26
by chris76
Also diese Kombination habe ich bei mir auch erfolgreich am laufen.
als erstes schau dir mal die Rechte von dem lmtp socket an.
dann das ^M bei
Code: Select all
couldn't connect to lmtpd: Permission denied^M
gefällt mir nicht.
Wobei das nur die Ausgabe ist, kommt das von nem Editor aus dem du hierein gepastet hast?
Re: Postfix -> Procmail -> Cyrus funktioniert nicht
Posted: 2004-05-10 22:30
by schl
hi chris76, habe schon gesehen, dass Du auch an diesem Thema dran warst.
die recht vom socket sind
Code: Select all
srwxrwxrwx 1 root root 0 2004-05-10 22:01 lmtp
das ^M ist so in der originaldatei drin...
Re: Postfix -> Procmail -> Cyrus funktioniert nicht
Posted: 2004-05-10 23:08
by majortermi
Wäre es nicht sinnvoller Postfix direkt an den Cyrus ausliefern zu lassen?
Procmail sollte man ja eigentlich nicht brauchen, da Cyrus auch eine Sieve-Implementierung mitbringt.
Re: Postfix -> Procmail -> Cyrus funktioniert nicht
Posted: 2004-05-11 06:33
by schl
@MajorTermi: Du magst schon recht haben, aber viele Wege führen nach Rom. Mit Hilfe von Procmail kann man recht einfach Spamassassin einbinden. Ok, geht auch in der master.cf von Postfix (habe ich gerde so im Einsatz), aber die Variante mit Procmail scheint mir etwas unkomplozierter.
sCHL
Re: Postfix -> Procmail -> Cyrus funktioniert nicht
Posted: 2004-05-11 13:03
by chris76
Also Christian,
- in welcher Datei ist das ^M drin?
- wie lautet in der lmtp Pfad in der imapd.conf?
- wie lautet das mailbox_command in der main.cf?
- wie schaut der eintrag von Procmail in der master.cf aus?
Das sind die Punkte die ich mir mal als erstes ansehen würde.
Re: Postfix -> Procmail -> Cyrus funktioniert nicht
Posted: 2004-05-11 18:53
by schl
hi christian, hoffe Du hattest einen schönen arbeitstag...
zu 1. das ^M ist einfach im logfile von procmail drin /var/log/procmail
zu 2. imapd.conf
Code: Select all
configdirectory: /var/lib/imap
partition-default: /var/spool/imap
sievedir: /var/lib/sieve
admins: cyrus
allowanonymouslogin: no
autocreatequota: 10000
reject8bit: no
quotawarn: 90
timeout: 30
poptimeout: 10
dracinterval: 0
drachost: localhost
sasl_pwcheck_method: saslauthd
lmtp_overquota_perm_failure: no
#
# if you want TLS, you have to generate certificates and keys
#
#tls_cert_file: /usr/ssl/certs/cert.pem
#tls_key_file: /usr/ssl/certs/skey.pem
#tls_ca_file: /usr/ssl/CA/CAcert.pem
#tls_ca_path: /usr/ssl/CA
zu 3. main.cf
zu 4. master.cf
Code: Select all
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
pickup fifo n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr fifo n - n 300 1 qmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
showq unix n - n - - showq
error unix - - n - - error
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
cyrus unix - n n - - pipe
user=cyrus argv=/usr/lib/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
vscan unix - n n - 10 pipe
user=vscan argv=/usr/sbin/amavis ${sender} ${recipient}
procmail unix - n n - - pipe
flags=R user=nobody argv=/usr/bin/procmail -t -m /etc/procmailrc ${sender} ${recipient}
5. cyrus.conf
Code: Select all
START {
recover cmd="ctl_cyrusdb -r"
}
SERVICES {
imap cmd="imapd" listen="imap" prefork=0
pop3 cmd="pop3d" listen="pop3" prefork=0
lmtpunix cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=0
}
EVENTS {
checkpoint cmd="ctl_cyrusdb -c" period=30
delprune cmd="ctl_deliver -E 3" period=1440
tlsprune cmd="tls_prune" period=1440
}
und zu guter letzt noch die procmailrc
Code: Select all
PPRIVS=yes
LOGFILE=/var/log/procmail
#VERBOSE=ON
SHELL=/bin/sh
# Mailbox-Zustellung
DELIVERMAIL="/usr/lib/cyrus/bin/deliver"
IMAP="/usr/lib/cyrus/bin/deliver -a $USER -m INBOX $USER"
# --- From-Zeile löschen, ---
# --- sonst funktioniert deliver nicht !! ---
:0fw
| formail -f -I "From "
# --- Spam Test ---
:0fw
* < 256000
| /usr/bin/spamc -f
# --- an INBOX zustellen ---
:0w
| $IMAP
# --- und Schluss ---
:0w
{
EXITCODE=$?
HOST
}
Re: Postfix -> Procmail -> Cyrus funktioniert nicht
Posted: 2004-05-11 18:57
by chris76
versuch mal in der imapd.conf
den socket explizit anzugeben
Code: Select all
lmtpsocket: /var/lib/imap/socket/lmtp
den Pfad musst du halt noch anpassen.
Das ist jetzt so auf den ersten Blick der einyige Unterschied den ich hab
Re: Postfix -> Procmail -> Cyrus funktioniert nicht
Posted: 2004-05-11 19:13
by schl
hm, hat sich nichts geändert...
Re: Postfix -> Procmail -> Cyrus funktioniert nicht
Posted: 2004-05-11 20:33
by schl
hm, habe hier gerade noch folgendes aus den logs
Code: Select all
May 11 20:29:00 h7185 master[15431]: setrlimit: Unable to set file descriptors limit to -1: Operation not permitted
May 11 20:29:00 h7185 master[15431]: retrying with 1024 (current max)
May 11 20:29:00 h7185 master[15431]: process started
May 11 20:29:00 h7185 master[15432]: about to exec /usr/lib/cyrus/bin/ctl_cyrusdb
May 11 20:29:00 h7185 ctl_cyrusdb[15432]: recovering cyrus databases
May 11 20:29:00 h7185 ctl_cyrusdb[15432]: DBERROR db4: malloc: Cannot allocate memory: 3435973880
May 11 20:29:00 h7185 ctl_cyrusdb[15432]: DBERROR db4: PANIC: Cannot allocate memory
May 11 20:29:00 h7185 ctl_cyrusdb[15432]: DBERROR: critical database situation
May 11 20:29:00 h7185 master[15431]: process 15432 exited, status 75
May 11 20:29:00 h7185 master[15431]: ready for work
May 11 20:29:00 h7185 master[15433]: about to exec /usr/lib/cyrus/bin/tls_prune
May 11 20:29:00 h7185 tls_prune[15433]: DBERROR db4: fatal region error detected; run recovery
May 11 20:29:00 h7185 tls_prune[15433]: DBERROR: dbenv->open '/var/lib/imap/db' failed: DB_RUNRECOVERY: Fatal error, run database recovery
May 11 20:29:00 h7185 tls_prune[15433]: DBERROR: init (TLS: /var/lib/imap/db): cyrusdb error
May 11 20:29:00 h7185 master[15434]: about to exec /usr/lib/cyrus/bin/ctl_deliver
May 11 20:29:00 h7185 ctl_deliver[15434]: DBERROR db4: fatal region error detected; run recovery
May 11 20:29:00 h7185 ctl_deliver[15434]: DBERROR: dbenv->open '/var/lib/imap/db' failed: DB_RUNRECOVERY: Fatal error, run database recovery
May 11 20:29:00 h7185 ctl_deliver[15434]: DBERROR: init /var/lib/imap/db: cyrusdb error
May 11 20:29:00 h7185 master[15435]: about to exec /usr/lib/cyrus/bin/ctl_cyrusdb
May 11 20:29:00 h7185 ctl_cyrusdb[15435]: checkpointing cyrus databases
May 11 20:29:00 h7185 ctl_cyrusdb[15435]: DBERROR db4: fatal region error detected; run recovery
May 11 20:29:00 h7185 ctl_cyrusdb[15435]: DBERROR: dbenv->open '/var/lib/imap/db' failed: DB_RUNRECOVERY: Fatal error, run database recovery
May 11 20:29:00 h7185 ctl_cyrusdb[15435]: DBERROR: init /var/lib/imap/db: cyrusdb error
May 11 20:29:00 h7185 ctl_cyrusdb[15435]: done checkpointing cyrus databases
May 11 20:29:00 h7185 master[15431]: process 15435 exited, status 1
May 11 20:29:00 h7185 master[15431]: process 15434 exited, status 1
May 11 20:29:00 h7185 master[15431]: process 15433 exited, status 1
laut google deutet das auf ein problem mit berkeley db3 hin. eine direkte lösung habe ich aber nirgends gefunden. habe einfach die pakete aus YAST (SUSE9.0) installiert. nichtmal selber kompiliert...
Re: Postfix -> Procmail -> Cyrus funktioniert nicht
Posted: 2004-05-11 22:11
by schl
ok, für alle die das gleiche problem haben:
habe cyrus-imap in yast wieder deinstalliert. anschliessend habe ich den ordner /var/lib/imap gelöscht. dann cyrus-imap wieder per yast installiert. jetzt wurde der korrekte inhalt von /var/lib/imap installiert. cyrus läuft jetzt ohne murren...
sCHL
Re: Postfix -> Procmail -> Cyrus funktioniert nicht
Posted: 2004-05-13 12:51
by schl
so, habe jetzt noch ein bisschen probiert. es möchte aber nicht laufen. die auslieferung direkt an cyrus klappt ohne probleme. erst wenn das procmail dazwischen geschaltet wird. hängt sich die sache auf (siehe fehlermeldungen im ersten post)
ich hatte mir erhofft, durch die integration von procmail zu erreichen, dass ich z. B. spammails in ein anderes postfach sortieren lassen kann und dass auch die speziellen userpref mit einbezogen werden können. wenn ich direkt an cyrus ausliefere wird das wohl nicht klappen. oder gibt es da eine ähnliche möglichkeit. habe das folgendermaßen konfiguriert:
Postfix-Spamassassin-Howto
wenn jemand alterntiven kennt, würde ich die auch gern kennenlernen :-)
danke sCHL
Re: Postfix -> Procmail -> Cyrus funktioniert nicht
Posted: 2004-07-22 15:20
by crackmasterflash
@sCHL
das hilft dir zar nicht weiter aber ich hänge an der selben stelle