Mail unter /var/spool/mail

Dieses Thema im Forum "Installation und Konfiguration" wurde erstellt von DiOmega, 18. Mai 2009.

  1. DiOmega

    DiOmega New Member

    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: 18. Mai 2009
  2. DiOmega

    DiOmega New Member

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

    DiOmega New Member

    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?
     
  4. Till

    Till Administrator

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

    DiOmega New Member

    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?
     
  6. Till

    Till Administrator

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

    DiOmega New Member

    Hat funktioniert. Vielen Dank!!!
     

Diese Seite empfehlen