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

Code: Select all

mailbox_transport = procmail
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