web-dev-qa-db-fra.com

Comment déplacer un spam dans un dossier spam?

j'ai déjà installé postfix, dovecot, Clamav, Spamassassin et amavisd-new sur mon centos 5.10 . Le tutoriel est ici: http://catatanlepas.com/komputer/aplikasi/server-mail/postfix/359 -instalasi-postfix-menggunakan-dovecot-di-centos-5-5

Je viens pas d'installer Razor, Pyzor, dan DCC sur ce tutoriel.

Tout fonctionne correctement dans/var/log/maillog, s’il existe un courrier indésirable n n’arrive pas dans la boîte de réception, mais je souhaite déplacer le courrier indésirable dans un dossier de courrier indésirable.

Ma question est la suivante: 1. Comment créer automatiquement un dossier spam sur mon webmail car il ne s'agit que de créer une boîte de réception, un brouillon et un élément envoyé uniquement et qu'il n'y a pas de dossier spam sur mon webmail . 2. Comment déplacer un courrier électronique indésirable dans ce dossier de courrier indésirable par utilisateur (je crée un utilisateur sur/var/vmail)

S'il vous plaît aidez-moi, j'ai une recherche dans google pour 5 jours et je suis pile sur ceci :(

Je vous remercie.

11
user3747101

pour Dovecot 2.1 + , modifiez /etc/dovecot/dovecot.conf:

namespace {
    type = private
    separator = .
    inbox = yes
  mailbox Trash {
    auto = subscribe # autocreate and autosubscribe
    special_use = \Trash
  }
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox Junk {
    auto = subscribe
    special_use = \Junk
  }
}

plugin {
    sieve = /home/spam/default.sieve
}

protocol lda {
            auth_socket_path = /var/run/dovecot/auth-master
            mail_plugins = $mail_plugins sieve
}

puis /etc/postfix/master.cf - add 

spamassassin unix -     n   n   -   -   pipe
  user=vmail argv=/usr/bin/spamc -f -e  /usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}

(!!) user = vmail - remplace l'utilisateur par celui configuré pour spamassassin

et ajouter un filtre de contenu à smtp

smtp  inet  n  - - - -  smtpd -o content_filter=spamassassin

dans /etc/mail/spamassassin/local.cf

add_header all Status _YESNO_, score=_SCORE_ required=_REQD_ version=_VERSION_
#rewrite_header Subject *****SPAM*****
bayes_ignore_header X-Bogosity
bayes_ignore_header X-Spam-Flag
bayes_ignore_header X-Spam-Status

J'ajouterai des en-têtes X-Spam au message qui sera utilisé pour le filtrage de tamis ultérieur

Le dossier de courrier indésirable sera créé automatiquement . Tous les courriers indésirables seront livrés localement à la boîte aux lettres Junk

J'ajoute également un exemple de filtre de tamisage pour déplacer tous les messages marqués comme messages de spam (configuration de spamassassin ci-dessus) vers un dossier indésirable.

require "fileinto";
  if exists "X-Spam-Flag" {
          if header :contains "X-Spam-Flag" "NO" {
          } else {
          fileinto "Junk";
          stop;
          }
  }
7
ETech

Eh bien, il y a plusieurs façons, mais c'est ce que j'ai trouvé fonctionner. Après avoir installé postfix, dovecot, spamassassin et (je recommande procmail), vous pouvez indiquer à procmail/spamassassin comment distribuer le spam dans différents dossiers. Avec pigeonnier. J'utilise les 4 dossiers suivants:

spam          (for known spam based on Bayes setting)
spam-learn    (for spam that slipped through, you move it here)
spam-probably (for spam ID'd as probably spam by Bayes setting)
spam-unlearn  (messages flagged as spam, that are NOT spam go here)

avec la configuration des dossiers et postfix configurés pour filtrer le courrier avec procmail avec:

mailbox_command = /usr/bin/procmail -a "$EXTENSION"

vous pouvez maintenant configurer votre procmailrc pour mettre le spam à la place qui convient dans votre boîte de réception. Votre ~/.procmailrc devrait ressembler à ceci:

PATH=/usr/bin/vendor_Perl:/usr/bin:/bin:/usr/local/bin:.
MAILDIR=$HOME/Mail/
LOGDIR=$HOME/log
#DEFAULT=$HOME/Mail/
LOGFILE=$LOGDIR/procmail.log
VERBOSE=ON
## with spamc
:0fw: spamc.lock
* < 256000
| spamc
#| /usr/bin/vendor_Perl/spamc
# Mails with a score of 15 or higher are almost certainly spam (with 0.05%
# false positives according to rules/STATISTICS.txt). Let's put them in a
# different mbox. (This one is optional.)
:0:
* ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
spam
#Mail/spam

# All mail tagged as spam (eg. with a score higher than the set threshold)
# is moved to "probably-spam".
:0:
* ^X-Spam-Status: Yes
spam-probably
#Mail/spam-probably

# Work around procmail bug: any output on stderr will cause the "F" in "From"
# to be dropped.  This will re-add it.
:0
* ^^rom[ ]
{
LOG="*** Dropped F off From_ header! Fixing up. "

:0 fhw
| sed -e '1s/^/F/'
}

Maintenant, la dernière chose à faire pour que tout fonctionne automatiquement consiste à utiliser fetchmail pour analyser les messages à mesure qu'ils arrivent dans votre boîte de réception, puis transmettez à procmail afin de mettre le spam/spam probablement dans les bons dossiers et de lire les messages du spam (à supprimer). et spam-unlearn (à apprendre en tant que ham). Un script fetchmail typique à faire est ~/.fetchmailrc. Il contiendra simplement des commandes pour interroger votre boîte aux lettres:

poll mail.yourserver.com protocol IMAP : user yourname with password yourpass ssl \
sslfingerprint "D9:73:1A:FE:C6:7C:E7:9B:F1:31:F8:A1:A0:E1:F9:27"

(Vous pouvez obtenir votre empreinte digitale de serveur en exécutant simplement fetchmail --verbose sur votre fichier .fetchmailrc. Il imprimera l'empreinte de serveur, vérifiez votre empreinte actuelle, vous indiquez qu'elles ne correspondent pas et fermez la connexion - mais - vous venez d'obtenir la bonne empreinte digitale pour la prochaine fois :-)

Enfin, configurez quelques tâches cron pour exécuter tout cela en lisant vos dossiers spam-learn et spam-unlearn. Toutes les heures suffisent. Le script peut ressembler à ceci:

#!/bin/bash

## log file location and per-user name
LDIR=/home/admin/log
LFN="${LDIR}/${USER}.log"

## Retrieve and Process Spam & Ham from 'spam-learn' & 'spam-unlearn' folders
/usr/bin/fetchmail -a -s -n --folder spam-learn -m '/usr/bin/vendor_Perl/sa-learn --spam' &>/dev/null
mss=$?
sleep 2
/usr/bin/fetchmail -a -s -n --folder spam-unlearn -m '/usr/bin/vendor_Perl/sa-learn --ham' &>/dev/null
mhs=$?

## test and create log dir in noexist
[[ -d "$LDIR" ]] || mkdir -p "$LDIR"
if [[ -w "$LDIR" ]]; then

## check return from fetchmail and write log info
if [[ $(($mhs+$mss)) -le 2 ]]; then
    echo "$(date +'%b %e %R:%S') $HOSTNAME ${0##*/}: sa-learn completed successfully for user $USER" >>$LFN
else
    echo "$(date +'%b %e %R:%S') $HOSTNAME ${0##*/}: sa-learn FAILED for user $USER" >>$LFN
fi
fi

Et le travail cron exécute simplement le fichier spamv.sh ci-dessus:

05 * * * * /usr/local/bin/spamv.sh

Je fais fonctionner des serveurs comme celui-ci depuis près d’une décennie et cela fonctionne bien. Les fichiers de formation résident dans le répertoire personnel de l'utilisateur et peuvent être facilement déplacés boîte à boîte afin de fournir un bon ensemble de base aux nouveaux utilisateurs. Bonne chance. J'ai fait un bref tutoriel sur cette configuration il y a des années pour openSuSE 11.0 . Il y aura peut-être aussi un peu plus d’informations.

P.S. Rayzor vaut la peine d'être chargé.

0
David C. Rankin