procmail vergibt message Name 2fach / E-Mails gelöscht

killerloop

New Member
Hallo zusammen,

bei mir verschwinden leider sporadisch E-Mails, nun habe ich ein paar Indizien gefunden.

Das ganze läuft auf einem Strato V-Server mit Suse 10.1 und Plesk 8.2.1. Anhand mehrere Howtos wurde Spamassassin 3.2.3 und Procmail 3.22 außerhalb von Plesk eingebunden. (SA zentral ohne user.prefs und procmail beim gewünschten user) Eigentlich funktioniert das auch sehr gut, aber eben verschwinden manchmal E-Mails:

Obwohl procmail die E-Mails laut logfile in das richtige Maildir abspeichert, kommen diese nicht bei meinem Mailclient (Outlook 2007, per POP3 SSL) an, sondern werden gelöscht bzw. überschrieben. Ein Muster, um welche E-Mails es sich dabei handelt, konnte ich bisher nicht erkennen.

Bei den verschwundenen E-Mails handelt es sich nicht um false positives von Spamassassin, das scheint also einwandfrei zu funktionieren.

Ich habe in der procmail logfile aber nun entdeckt (verbose=on ;-) ), dass bei den verschwundenen E-Mails der selbe Message-Dateiname 2-fach verwendet wurde. Die verschwundene E-Mail wurde also entweder einfach von procmail durch eine neue überschrieben, bevor mein Mail-Client diese Nachricht abgerufen hat, oder die Message-Datei wird von einem anderen Programm (?) gelöscht und danach wird der Dateiname von procmail noch einmal verwendet.

Kommt das jemanden bekannt vor, oder hat jemand spontan eine Lösung dazu?

Wie werden die Dateinamen für die Messages von procmail überhaupt ausgewählt, oder kommen diese von qmail? Kann man Einfluss auf die Dateinamen nehmen, so dass diese immer fortlaufend sind ohne Möglichkeit einer Überschreibung?

Ich wäre für jede Idee dankbar, weil es echt ärgerlich ist, wenn E-Mails verschwinden ... :-(

Danke
Killerloop

Meine Config und Logdateien:

qmail-queue
Code:
#!/bin/bash
if [ -z $USER ] ; then
  /usr/bin/spamc | /var/qmail/bin/qmail-queue.orig
else
  /var/qmail/bin/qmail-queue.orig
fi

.qmail
Code:
|preline /usr/bin/procmail -m .procmailrc

.procmailrc
Code:
SHELL=/bin/sh
PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin
HOME=/var/qmail/mailnames/domain.com/v.nachname
MAILDIR=$HOME/Maildir/new

LOGFILE=$HOME/procmail.log
VERBOSE=on

:0
* ^X-Spam-Flag: YES
/dev/null

:0:
$MAILDIR

procmail.log,
in diesem Fall kam die 1. der beiden E-Mails nie bei meinem Client an, der Dateiname für die Message wurde 2 mal mit 'msg.4UBV' festgelegt:
Code:
procmail: [13324] Tue Dec 11 16:56:55 2007
procmail: No match on "^X-Spam-Flag: YES"
procmail: Locking "/var/qmail/mailnames/domain.com/v.nachname/Maildir/new.lock"
procmail: Assigning "LASTFOLDER=/var/qmail/mailnames/domain.com/v.nachname/Maildir/new/msg.4UBV"
procmail: Opening "/var/qmail/mailnames/domain.com/v.nachname/Maildir/new/msg.4UBV"
procmail: Acquiring kernel-lock
procmail: Unlocking "/var/qmail/mailnames/domain.com/v.nachname/Maildir/new.lock"
From freund@web.de Tue Dec 11 15:56:55 2007
 Subject: Gelesen: Eine wichtige Nachricht
  Folder: /var/qmail/mailnames/domain.com/v.nachname/Maildir/new/ms	   2698

...

procmail: [30191] Wed Dec 12 10:17:32 2007
procmail: No match on "^X-Spam-Flag: YES"
procmail: Locking "/var/qmail/mailnames/domain.com/v.nachname/Maildir/new.lock"
procmail: Assigning "LASTFOLDER=/var/qmail/mailnames/domain.com/v.nachname/Maildir/new/msg.4UBV"
procmail: Opening "/var/qmail/mailnames/domain.com/v.nachname/Maildir/new/msg.4UBV"
procmail: Acquiring kernel-lock
procmail: Unlocking "/var/qmail/mailnames/domain.com/v.nachname/Maildir/new.lock"
From freund@web.de Wed Dec 12 09:17:32 2007
 Subject: Re: Eine andere Nachricht
  Folder: /var/qmail/mailnames/domain.com/v.nachname/Maildir/new/ms	  28720

Ob es Zufall ist, dass beide E-Mails vom selben Absender stammen, weiß ich nicht, aber zumindest kommen die E-Mails von diesem Absender (freund@web.de) sonst korrekt an. Das Problem tritt wie gesagt leider sporadisch aber regelmäßig auf, auch mit anderen Absendern.
 
Last edited by a moderator:
Code:
MAILDIR=$HOME/Maildir/new[COLOR="Red"]/[/COLOR]

Ich setzte das MailDir-Format nicht ein und kenne mich daher nicht wirklich aus (habe es mir nur vor einer Weile mal angeschaut...), aber der Artikel hier lässt mich vermuten, dass es an einem fehlenden '/' liegt.

Viele Grüße,
LinuxAdmin
 
interessanter Link!

Ich verstehe die Beschreibung aber dort eher so, dass die E-Mails von procmail lieber in das Überverzeichnis Maildir/ als in Maildir/new gespeichert werden sollen.

Weiß jemand, ob das etwas bringt? Werden die Message-Dateinamen (bzw. "inode_numbers") nicht schon von qmail vergeben?
 
Also nochmals vielen Dank LinuxAdmin :)

Dein Link hat mich auf viele weitere gute Gedeanken gebracht. Ich denke beides ist richtig, erstmal der Slash am Ende von Maildir und zweitens das Unterverzeichnis "new" wegzulassen.

Durch den Slash am Ende wird das Dateinamen-Format offenbar von MH auf Maildir geändert und es kommen dabei wirklich einmalige Dateinamen zustande.

Meine neue optimale .procmailrc sieht nun so aus:
Code:
SHELL=/bin/sh
PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin
HOME=/var/qmail/mailnames/domain.com/v.nachname
MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/
LOGFILE=$HOME/procmail.log
VERBOSE=on

:0
* ^X-Spam-Flag: YES
/dev/null

Neu ist darin auch die Verwendung von 'DEFAULT' und damit ein Recipe weniger als davor ;-)

Weitere gute Links zum Thema:
gmane.mail.procmail
The Joyent Community / Getting procmail to write messages properly

VG
Killerloop
 
Back
Top