Guest User

Untitled

a guest
Dec 15th, 2016
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.23 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. DSPAM_BINARY="/usr/bin/dspam"   ## dspam binaris eleresi uttal
  4. MAILDIR_PATH="/srv/mail"        ## Leveleket tartalmazo mappa
  5. SPAMDIR_NAME1=".Junk"           ## Spam mappa a mailboxon belul
  6. SPAMDIR_NAME2=".Junk E-mail"    ## Spam mappa a mailboxon belul
  7. SPAMEXPIRE_DAYS=7               ## Spam mappaban talahato levelek lejarata (lejart levelek tanulasa, majd torlese)
  8.  
  9. for domain in $(ls -1 ${MAILDIR_PATH}); do
  10.     for user in $(ls -1 ${MAILDIR_PATH}/${domain}); do
  11.         ## SPAM levelek tanitasa - SPAM mappabol (amit configba allitott be)
  12.         if [ -d ${MAILDIR_PATH}/${domain}/${user}/.Maildir/${SPAMDIR_NAME1} ]; then
  13.             for spam_mail in $(find "${MAILDIR_PATH}/${domain}/${user}/.Maildir/${SPAMDIR_NAME1}/cur" -type f -mtime +${SPAMEXPIRE_DAYS} -print); do
  14.                 ${DSPAM_BINARY} --user ${user}@$domain --class=spam --source=corpus --mode=teft < "${spam_mail}"
  15.                 rm -f ${spam_mail}
  16.             done
  17.         fi
  18.  
  19.         if [ -d "${MAILDIR_PATH}/${domain}/${user}/.Maildir/${SPAMDIR_NAME2}" ]; then
  20.             ln -s "${MAILDIR_PATH}/${domain}/${user}/.Maildir/${SPAMDIR_NAME2}" "${MAILDIR_PATH}/${domain}/${user}/.Maildir/_DSPAM_TEMP"
  21.             for spam_mail in $(find "${MAILDIR_PATH}/${domain}/${user}/.Maildir/_DSPAM_TEMP/cur" -type f -mtime +${SPAMEXPIRE_DAYS} -print); do
  22.                 ${DSPAM_BINARY} --user ${user}@$domain --class=spam --source=corpus --mode=teft < "${spam_mail}"
  23.                 rm -f ${spam_mail}
  24.             done
  25.             rm -f "${MAILDIR_PATH}/${domain}/${user}/.Maildir/_DSPAM_TEMP"
  26.         fi
  27.  
  28.         if [ -d "${MAILDIR_PATH}/${domain}/${user}/.Maildir" ]; then
  29.              ## HAM levelek tanitasa - Beerkezo mappa olvasott levelek mappabol
  30.              for ham_mail in $(find "${MAILDIR_PATH}/${domain}/${user}/.Maildir/cur" -type f -mtime 0 -print); do
  31.                  ${DSPAM_BINARY} --user ${user}@$domain --class=innocent --source=corpus --mode=teft < "${ham_mail}"
  32.              done
  33.  
  34.              ## HAM levelek tanitasa - IMAP mappak olvasott levelek mappaibol
  35.              for imap_dir in $(find ${MAILDIR_PATH}/${domain}/${user}/.Maildir -maxdepth 1 -type d -name ".*" -print); do
  36.                 if [ "${imap_dir}" = "${MAILDIR_PATH}/${domain}/${user}/.Maildir" ] ||
  37.                    [ "${imap_dir}" = "${MAILDIR_PATH}/${domain}/${user}/.Maildir/${SPAMDIR_NAME}" ] ||
  38.                    [ "${imap_dir}" = "${MAILDIR_PATH}/${domain}/${user}/.Maildir/.Sent" ] ||
  39.                    [ "${imap_dir}" = "${MAILDIR_PATH}/${domain}/${user}/.Maildir/.Sent Items" ] ||
  40.                    [ "${imap_dir}" = "${MAILDIR_PATH}/${domain}/${user}/.Maildir/.Deleted Items" ] ||
  41.                    [ "${imap_dir}" = "${MAILDIR_PATH}/${domain}/${user}/.Maildir/.Drafts" ] ||
  42.                    [ "${imap_dir}" = "${MAILDIR_PATH}/${domain}/${user}/.Maildir/.Trash" ]; then
  43.                     continue
  44.                 fi
  45.  
  46.                 if [ -d ${imap_dir}/cur ]; then
  47.                     for ham_mail in $(find ${imap_dir}/cur -type f -mtime 0 -print); do
  48.                         ${DSPAM_BINARY} --user ${user}@$domain --class=innocent --source=corpus --mode=teft < ${ham_mail}
  49.                     done
  50.                 fi
  51.             done
  52.         fi
  53.     done;
  54. done;
Add Comment
Please, Sign In to add comment