Status nowych wiadomości z Dovecot

Łukasz Piotrowski Komentarzy 0

    Witajcie.

    Jakiś czas temu postanowiłem że przeniosę część skrzynek pocztowych na VPS.
    Do tego celu zainstalowałem Postfix + Dovecot i kilka innych rzeczy.

    Jako że tych skrzynek może być sporo (oczywiście wszystkie moje lub mam do nich dostęp) postanowiłem napisać mały mechanizm powiadamiania o ilości nieprzeczytanych wiadomości na poszczególnych skrzynkach. A więc do sedna.

    Update

    Niestety w nowym ubuntu począwszy od 14.xx nie działa ta metoda.


    Domyślnie nowe wiadomości są trzymane w /var/vmail/domena.pl/prefix/new
    Teraz skrypcik odpalany CRONem

    #!/bin/bash
    
    for i in /var/vmail/* ; do
        if [ -d "$i" ]; then
            domain=${i##*/};
            printf "%s\n" "$domain"
            for d in $i/* ; do
                if [ -d "$d" ]; then
                    counter=`ls "$d/new" -1 | wc -l`
                    box=${d##*/}
    
                    printf "%10s (%s) " "$box" "$counter"
    
                    if [ "$counter" -gt "0" ]; then
                        printf '+%.0s' {1..$counter}
                    fi;
    
                    printf "\n"
                    #echo "$box@$domain ($counter)"
                fi
            done
        fi
    done

    Skrypt realizuje output np:

    domena.pl
       kontakt (3) +++
    piotrows.pl
       kontakt (1) +
       lukasz (2) ++
    

    Ustawiamy sobie teraz zadanko w CRON np:

    *       *       *       *       *       /bin/bash /root/checkMails.sh > /var/www/domena.pl/coutMyMails.php

    Spowoduje to zapisanie wyniku w katalogu dostępnym z poziomu WWW np. http://domena.pl/coutMyMails.php

    Teraz maszynka lokalna. Polecenie w CRON:

    */2     *       *       *       *       export DISPLAY=:0.0 && notify-send "\n$(curl http://domena.pl/coutMyMails.php)"

    To nam wywali co 2min notify z outputem który generuje skrypt bash na serwerze.

    Proste szybkie i jakże skuteczne :)

    Top