Hallo!
Ich will meine Mails nach dem Empfang per Procmail (und dann per Cyrus) sortieren lassen. Das hat bisher auch geklappt. Nun habe ich von Debian Woody auf Sarge upgegraded und nun funktioniert das tlw. nicht mehr richtig. V.a. gibt es Mails (von clamav und logcheck), die nicht normal sortiert werden (per procmail/cyrus), sondern einfach in /var/mail abgelegt werden. Diese Mails sollten normal an root geschickt werden, fuer den es einen Alias an meinen normalen Benutzer gibt.
Wie es prinzipiell bisher immer funktionierte (ist so gewachsen):
– Mail wird von sendmail entgegengenommen
– Mail wird von clamav auf Viren untersucht
– Mail wird von spamassassin als Spam oder Ham markiert
– Mail wird von procmail bearbeitet und
– per cyrdeliver in ein bestimmtes Postfach des Users zugestellt.
(diese Schritte muessen bei einer Loesung erhalten bleiben!)
Das procmail.global versucht ein Userspezifisches procmailrc einzubinden. Dieses kann die Mail z.B. in ein bestimmtes Postfach des Users ablegen (hoschi.wichtig, hoschi.spam, hoschi.arbeit etc.).
Wenn keine Regel das Mail abgeliefert hat, wird die Mail in das Defaultpostfach des Users abgeliefert (hoschi.default).
Fuer Tips und Vorschlaege waer ich dankbar. V.a. wie man den sendmail “debuggen” kann. Ich will sowas wie verbose, das die Entscheidungen von sendmail dokumentiert (im Logfile). Ich habe es bisher noch nicht geschafft mit -dxx.x mehr Infos ueber den Ablauf von sendmail zu bekommen.
Meine sendmail.mc:
divert(0)
define(`_USE_ETC_MAIL_’)dnl
include(`/usr/share/sendmail/cf/m4/cf.m4′)dnl
VERSIONID(`@(#)sendmail.mc 8.9.3-21 (Debian) 20000309′)
OSTYPE(`debian’)dnl
DOMAIN(`debian-mta’)dnl
dnl # Items controlled by /etc/mail/sendmail.conf – DO NOT TOUCH HERE
dnl undefine(`confHOST_STATUS_DIRECTORY’)dnl #DAEMON_HOSTSTATS
dnl # Items controlled by /etc/mail/sendmail.conf – DO NOT TOUCH HERE
LOCAL_CONFIG
Dmxxx.xxx.xxx
define(`confDOMAIN_NAME’, `$m’)dnl
define(`confRECEIVED_HEADER’, `from xxx.xxx.xxx
by xxx.xxx.xxx ($v/$Z)$?r with $r$.
id $i$?u
for $u; $|;
$.$b’)dnl
#FEATURE(masquerade_envelope)dnl
FEATURE(allmasquerade)dnl
FEATURE(masquerade_entire_domain)dnl
Cwxxx.xxx.xxx
#FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
FEATURE(redirect)dnl
FEATURE(`nouucp’, `reject’)dnl
FEATURE(relay_hosts_only)dnl
MASQUERADE_AS(xxx.xxx.xxx)dnl
MASQUERADE_DOMAIN(yyy.zzz)dnl
define(`confMAILER_NAME’, `POST-HOSHI’)dnl
# clamav
INPUT_MAIL_FILTER(`clamav’, `S=local:/var/run/clamav/clamav-milter.ctl, F=, T=S:4m;R:4m’)dnl
define(`confINPUT_MAIL_FILTERS’, `clamav’)dnl
# spamassassin settings
INPUT_MAIL_FILTER(`spamassassin’, `S=local:/var/run/sendmail/spamass.sock, F=, T=S:4m;R:4m;E:10
m’)dnl
# tls ist deaktiviert
# include(`/etc/mail/tls/starttls.m4′)dnl
define(`CERT_DIR’, `/etc/mail/tls’)dnl
define(`confSERVER_CERT’, `CERT_DIR/xxx.xxx.xxx2003.cert.cert’)dnl
define(`confSERVER_KEY’, `CERT_DIR/xxx.xxx.xxx.cert.key’)dnl
define(`confCLIENT_CERT’, `CERT_DIR/xxx.xxx.xxx.2003.cert.cert’)dnl
define(`confCLIENT_KEY’, `CERT_DIR/xxx.xxx.xxx.cert.key’)dnl
define(`confCACERT’, `CERT_DIR/xxx.xxx.xxx.cert.pem’)dnl
define(`confCACERT_PATH’, `CERT_DIR’)dnl
# cyrus config
define(`CYRUS_MAILER_FLAGS’, `A5@’)dnl
define(`CYRUS_MAILER_PATH’, `/usr/bin/procmail’)dnl
define(`CYRUS_MAILER_ARGS’, `procmail -p CYRUSUSER=$u /var/imap/procmail/procmail.global ‘)dnl
define(`CYRUS_MAILER_USER’, `cyrus:mail’)dnl
define(`CYRUS_BB_MAILER_FLAGS’, `’)dnl
define(`CYRUS_BB_MAILER_ARGS’, `cyrdeliver -e -q -m $u ‘)dnl
define(`confSMTP_LOGIN_MSG’, `mailserver’)dnl
MAILER_DEFINITIONS
MAILER(local)dnl
MAILER(smtp)dnl
MAILER(cyrus)dnl
LOCAL_CONFIG
## Custom configurations below (will be preserved)
LOCAL_RULE_0
R$=I $: $#cyrus $: $1
R$=I < @ $=w . > $: $#cyrus $: $1
R$=I < @ $=R . > $: $#cyrus $: $1
Rbb + $+ < @ $=w . > $#cyrusbb $: $1
LOCAL_CONFIG
FI /etc/mail/imap_users %[^\#]
———————-
in imap_users stehen nur meine lokalen Benutzer drin.
procmail.global:
#############################
# Constants
#############################
VERBOSE=on
LOGFILE=/tmp/procmail.log
DELIVER=”/usr/sbin/cyrdeliver”
INCLUDERC=../../imap/procmail/$CYRUSUSER/procmailrc
:0:$CYRUSUSER.lock
| $DELIVER -e -m default -a mydefaultuser
——————
noch ein paar Daten:
sendmail 8.13.3-6
procmail 3.22-10
clamav-milter 0.82-1
cyrus21-imapd 2.1.17-3
spamass-milter 0.2.0-7
spamassassin 3.0.2-1
Danke und mfG
Vogge
P.S: Bitte keine Vorschlaege a la “Verwende doch exim/postfix etc.”, “Filter doch im Mailprogramm”, “wozu willst Du die Mails ueberhaupt bekommen” etc.
Hallo!
Ich habe es selber geschafft. Der Fehler lag nicht an sendmail selbst sondern an der imap_user-Datei. In der habe ich einfach die anderen User (clamav, logcheck etc) aufgenommen und schon funktioniert es.
Auf die einfachsten Dinge kommt man immer als letztes :-((((
mfG
Vogge
P.S: mein neues sendmail.mc falls es auch jemand mal so versuchen will:
divert(0)
define(`_USE_ETC_MAIL_’)dnl
include(`/usr/share/sendmail/cf/m4/cf.m4′)dnl
OSTYPE(`debian’)dnl
DOMAIN(`debian-mta’)dnl
dnl # Items controlled by /etc/mail/sendmail.conf – DO NOT TOUCH HERE
dnl undefine(`confHOST_STATUS_DIRECTORY’)dnl #DAEMON_HOSTSTATS
dnl # Items controlled by /etc/mail/sendmail.conf – DO NOT TOUCH HERE
LOCAL_CONFIG
define(`confMAILER_NAME’, `POST-HOSHI’)dnl
Dmxxx.xxx.xxx
define(`confDOMAIN_NAME’, `$m’)dnl
FEATURE(use_ct_file)dnl
FEATURE(redirect)dnl
define(`confSMTP_LOGIN_MSG’, `mailserver’)dnl
# enable tls
include(`/etc/mail/tls/starttls.m4′)dnl
# clamav
INPUT_MAIL_FILTER(`clamav’, `S=local:/var/run/clamav/clamav-milter.ctl, F=, T=S:4m;R:4m’)dnl
define(`confINPUT_MAIL_FILTERS’, `clamav’)dnl
# spamassassin settings
INPUT_MAIL_FILTER(`spamassassin’, `S=local:/var/run/sendmail/spamass.sock, F=, T=S:4m;R:4m;E:10m’)dnl
## cyrus config
define(`CYRUS_MAILER_FLAGS’, `A5@’)dnl
define(`CYRUS_MAILER_PATH’, `/usr/bin/procmail’)dnl
define(`CYRUS_MAILER_ARGS’, `procmail -p CYRUSUSER=$u /var/imap/procmail/procmail.global ‘)dnl
define(`CYRUS_MAILER_USER’, `cyrus:mail’)dnl
MAILER(smtp)dnl
MAILER(cyrus)dnl
LOCAL_CONFIG
## Custom configurations below (will be preserved)
LOCAL_RULE_0
R$=I $: $#cyrus $: $1
R$=I < @ $=w . > $: $#cyrus $: $1
R$=I < @ $=R . > $: $#cyrus $: $1
Rbb + $+ < @ $=w . > $#cyrusbb $: $1
LOCAL_CONFIG
FI /etc/mail/imap_users %[^\#]