# Mail unter /var/spool/mail



## DiOmega (18. Mai 2009)

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"


----------



## DiOmega (18. Mai 2009)

Ich weiß nicht ob es etwas damit zu tun hat aber /var/www/web26 ist eines von nur zwei mit 777 in /var/www.


----------



## DiOmega (18. Mai 2009)

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 (18. Mai 2009)

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.


----------



## DiOmega (18. Mai 2009)

Zitat von Till:


> 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.


Danke, nach dem anpassen der Rechte kommen jetzt neuen Mails richtig an.
Gibt es eine Möglichkeit die alten von /var/mail ins Maildir zu verschieben?


----------



## Till (18. Mai 2009)

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:



```
<?

// 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


----------



## DiOmega (18. Mai 2009)

Hat funktioniert. Vielen Dank!!!


----------

