postfix受信済みと配送不能メールの自動削除


万が一サーバに入られて個人情報を抜かれない為に
こんなシェルを書いてみた

mail-delete.sh
#!/bin/sh

############################################
#配送不能キューに溜まったメールを廃棄する
############################################
postsuper -d ALL defer
postsuper -d ALL deferred

############################################
#curに移動してから一日経過したメールを削除する
############################################
function delete_file () {

    ###################
    #debug用
    #ls -la /home/$1/Maildir/cur/
    #echo -e "削除対象のメールはこちら============================\n"
    #find /home/$1/Maildir/cur/ -ctime +1 -type f;
    #find /home/$1/Maildir/cur/ -ctime +1 -type f >> /var/log/cron;
    #echo -e "====================================================\n"
    find /home/$1/Maildir/cur/ -ctime +1 -type f -exec rm -f {} \;
}

############################################
# /home直下のdirだけ取得し、delete_fileを呼び出す
############################################
ls -F /home | grep / | while read line; do

    if [ -d /home/$line/Maildir ]; then
        delete_file $line;
    fi

done

あとはシェルをcronで実行するだけ!(毎日0時)

/etc/cron.d/mail-delete
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
0 0 * * * root /etc/cron.d/mail-delete.sh