Mail unter /var/spool/mail

#1
Hallo Leute,

auf einem unserer Server sind ca. 60 Webs eingerichtet (Postfix mit Maildir). Das klappte auch seit zwei Jahren problemlos. Heute rief mich ein Kunde an dass er seit einigen Tagen keine Mail mer bekommt.

Ich fand seine Mails schließlich in (/var/spool/mail/web26_user1) statt in (/var/www/web26/user/web26_user1/Maildir). Hat jemand eine Idee warum die Mails eines User plötzlich nicht mehr im Maildir landen, obwohl es lange funktionierte?

Update:
Ich habe beim durchsuchen der Logs im mail.err folgendes gefunden:
Suspicious rcfile "/var/www/web26/.procmailrc"
 
Zuletzt bearbeitet:
#3
Ich habe die Rechte des Verzeichniss /var/www/web26 auf 755 geändert und jetzt kommen neue Mails an.

Gibt es eine Möglichkeit die alten aus /var/spool/mail/web26_user1 in /var/www/web26/user/web26_user1/Maildir zu verschieben?
 

Till

Administrator
#4
Vergleich mal die Rechte des Ordners /var/www/web26 und der Datei /var/www/web26/.procmailrc mit den rechten eines funktionierenden Webs und passe die Rechte ggf an.
 

Till

Administrator
#6
Du müsstest die Mails dazu ins maildir format umwandeln, da gibt es ein script namens mb2md welches das kann, müsstest Du über google finden.

Ich habe da mal ein kleines php script geschrieben, dass automatisch mittels mb2md alle Mails in /var/spool/mail in die korrekten Verzeichnisse verschiebt:


Code:
<?

// This script converts the content of mailboxes in /var/spool/mail
// to mail directories

$dir = "/var/spool/mail/";

// Öffnen eines bekannten Verzeichnisses und danach seinen Inhalt einlesen
if (is_dir($dir)) {
        if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
                if($file != '.' && $file != '..' && filesize("/var/spool/mail/".$file) > 0 && $file != 'Maildir') {
                        exec('mkdir /tmp/mb2md_temp');
                        $sourcefile = "/var/spool/mail/".$file;
                        $userid = fileowner($sourcefile);
                        $userinfo = posix_getpwuid($userid);
                        $username = $userinfo["name"];
                        $homedir = $userinfo["dir"];
                        $command = "/usr/bin/mb2md -s $sourcefile -d /tmp/mb2md_temp";
                        echo $command."\n";
                        exec($command);
                        $command = "chown $username /tmp/mb2md_temp/cur/*";
                        echo $command."\n";
                        exec($command);
                        $command = "mv /tmp/mb2md_temp/cur/* $homedir/Maildir/new/";
                        echo $command."\n";
                        exec($command);
                        exec("rm -rf /tmp/mb2md_temp");
                        exec("rm -f $sourcefile");
                }
        }
        closedir($dh);
        }
}

?>
Das script wird dann wie folgt auf der Shell aufgerufen:

/usr/bin/php -q /root/mb2md.php
 

Werbung

Top