Tribal-Dolphin
08/08/2006, 13h30
Bonjour,
Voici une solution simple pour rediriger les messages identifiés comme SPAM dans un dossier autre que le courrier non spam.
Cette technique fonctionne avec Qmail / QmailAdmin / Maildrop version OVH sur un serveur Gentoo-OVH release 2
1# Créer le fichier de redirection pour maildrop :
#touch /etc/mailfilter
Ajoutez le contenu à ce fichier avec votre éditeur favoris
SHELL="/bin/bash"
VHOME=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST`
# Creation d'un dossier "Spam" s'il n'existe pas encore
DUMMY=`test -d $VHOME/Maildir/.Spam`
if ( $RETURNCODE == 1 )
{
DUMMY=`/usr/bin/maildirmake -f Spam $VHOME/Maildir/`
DUMMY=`echo INBOX.Spam >> $VHOME/Maildir/courierimapsubscribed`
}
# Distribution suivant le marquage de Spamassassin
if (/^X-Spam-Status: *Yes/)
{
exception {
to "$VHOME/Maildir/.Spam/"
}
}
else
{
to "$VHOME/Maildir/"
}
Modifiez les droits et proprietaire du fichier :
chown vpopmail:vchkpw /etc/mailfilter
chmod 600 /etc/mailfilter
2# Modifier la compilation de QmailAdmin
cd /usr/local/portage-ovh/mail-mta/qmail-ovh/
Pour ma part, j'ai modifier le fichier qmail-ovh-1.0.3-r1.ebuild en voici le contenu :
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
inherit eutils
RESTRICT="nomirror"
QMAIL="1.03"
QMAILADMIN="1.2.10"
PROVIDE="virtual/mta
virtual/mda
net-mail/vpopmail"
DESCRIPTION="Qmail version OVH"
HOMEPAGE="http://www.ovh.com"
SRC_URI="ftp://ftp.ovh.net/made-in-ovh/release/gentoo/distfiles/qmail-$QMAIL-tls20010627-spamcontrol142-patched.tgz
ftp://ftp.ovh.net/made-in-ovh/release/gentoo/distfiles/qmail-$QMAIL.tar.gz
ftp://ftp.ovh.net/made-in-ovh/release/gentoo/distfiles/qmailadmin-$QMAILADMIN.tar.gz
"
MASK_QMAIL="mail-mta/qmail"
MASK_QMAILADMIN="net-mail/qmailadmin"
LICENSE="Ovh"
SLOT="0"
KEYWORDS="x86 amd64"
IUSE=""
DEPEND="app-antivirus/clamav
mail-filter/spamassassin
virtual/perl-Time-HiRes
virtual/perl-DB_File
app-arch/unzip
net-mail/ripmime
net-mail/tnef
"
RDEPEND=""
src_unpack() {
einfo "rien"
}
src_compile() {
cd ${WORKDIR}
einfo "Qmail"
unpack "qmail-1.03.tar.gz"
cp -ar "qmail-1.03" "qmail-1.03-tls-spamcontrol"
ln -s "qmail-1.03-tls-spamcontrol" "qmail-1.03-tls-spamcontrol-patched"
unpack "qmail-1.03-tls20010627-spamcontrol142-patched.tgz"
cd ${WORKDIR}/"qmail-1.03-tls-spamcontrol"
epatch ${FILESDIR}/"chkuser-2.0.8.patch"
epatch ${FILESDIR}/"qmail-queue.patch"
perl -pi -e "s|extern int errno;|#include <errno.h>|" error.h
perl -pi -e "s|head -1|head -n 1|g" Makefile
perl -pi -e "s|head -1|head -n 1|g" Makefile.142
perl -pi -e "s|head -1|head -n 1|g" Makefile.orig
make
make setup check
cd ${WORKDIR}
einfo "qmailadmin"
unpack "qmailadmin-1.2.10.tar.gz"
cd ${WORKDIR}/"qmailadmin-1.2.10"
./configure --enable-cgibindir=/home/ovh/cgi-bin \
--enable-htmldir=/home/ovh/www/ \
--enable-imagedir=/home/ovh/www/images/qmailadmin \
--enable-imageurl=/images/qmailadmin \
--enable-modify-spam \
--enable-spam-command="|preline /usr/local/bin/maildrop /etc/mailfilter"
make
make install-strip
chmod 755 /home/ovh/cgi-bin/qmailadmin
chown vpopmail.vchkpw -Rf /home/ovh/cgi-bin
chown qmaild /var/qmail/bin/qmail-smtpd
chgrp nofiles /var/qmail/bin/qmail-smtpd
chmod 6555 /var/qmail/bin/qmail-smtpd
}
src_install() {
newinitd ${FILESDIR}/qmail.initd qmail
einfo "install ok"
}
pkg_postinst() {
local hostname=`hostname`
perl -pi -e "s|nsXXXXXX.ovh.net|$hostname|" /etc/init.d/qmail
perl -pi -e "s|nsXXXXXX.ovh.net|$hostname|" /etc/init.d/.*qmail
}
Pour faire simple, j'ai uniquement ajouter les lignes source de QMailAdmin et je le recompile avec le support spam.
3# Installer le tout
ebuild qmail-ovh-1.0.3-r1.ebuild digest
/etc/init.d/qmail stop
emerge qmail-ovh
/etc/init.d/qmail start
Et voilà c'est fini.
C'est en place sur mon serveur depuis 48 heures sans accrocs.
Attention tout de même à bien cocher la case "Détection des spams ?" dans QmailAdmin pour les comptes existants qui souhaitent jouir de cette fonctionnalité.
Voici une solution simple pour rediriger les messages identifiés comme SPAM dans un dossier autre que le courrier non spam.
Cette technique fonctionne avec Qmail / QmailAdmin / Maildrop version OVH sur un serveur Gentoo-OVH release 2
1# Créer le fichier de redirection pour maildrop :
#touch /etc/mailfilter
Ajoutez le contenu à ce fichier avec votre éditeur favoris
SHELL="/bin/bash"
VHOME=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST`
# Creation d'un dossier "Spam" s'il n'existe pas encore
DUMMY=`test -d $VHOME/Maildir/.Spam`
if ( $RETURNCODE == 1 )
{
DUMMY=`/usr/bin/maildirmake -f Spam $VHOME/Maildir/`
DUMMY=`echo INBOX.Spam >> $VHOME/Maildir/courierimapsubscribed`
}
# Distribution suivant le marquage de Spamassassin
if (/^X-Spam-Status: *Yes/)
{
exception {
to "$VHOME/Maildir/.Spam/"
}
}
else
{
to "$VHOME/Maildir/"
}
Modifiez les droits et proprietaire du fichier :
chown vpopmail:vchkpw /etc/mailfilter
chmod 600 /etc/mailfilter
2# Modifier la compilation de QmailAdmin
cd /usr/local/portage-ovh/mail-mta/qmail-ovh/
Pour ma part, j'ai modifier le fichier qmail-ovh-1.0.3-r1.ebuild en voici le contenu :
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
inherit eutils
RESTRICT="nomirror"
QMAIL="1.03"
QMAILADMIN="1.2.10"
PROVIDE="virtual/mta
virtual/mda
net-mail/vpopmail"
DESCRIPTION="Qmail version OVH"
HOMEPAGE="http://www.ovh.com"
SRC_URI="ftp://ftp.ovh.net/made-in-ovh/release/gentoo/distfiles/qmail-$QMAIL-tls20010627-spamcontrol142-patched.tgz
ftp://ftp.ovh.net/made-in-ovh/release/gentoo/distfiles/qmail-$QMAIL.tar.gz
ftp://ftp.ovh.net/made-in-ovh/release/gentoo/distfiles/qmailadmin-$QMAILADMIN.tar.gz
"
MASK_QMAIL="mail-mta/qmail"
MASK_QMAILADMIN="net-mail/qmailadmin"
LICENSE="Ovh"
SLOT="0"
KEYWORDS="x86 amd64"
IUSE=""
DEPEND="app-antivirus/clamav
mail-filter/spamassassin
virtual/perl-Time-HiRes
virtual/perl-DB_File
app-arch/unzip
net-mail/ripmime
net-mail/tnef
"
RDEPEND=""
src_unpack() {
einfo "rien"
}
src_compile() {
cd ${WORKDIR}
einfo "Qmail"
unpack "qmail-1.03.tar.gz"
cp -ar "qmail-1.03" "qmail-1.03-tls-spamcontrol"
ln -s "qmail-1.03-tls-spamcontrol" "qmail-1.03-tls-spamcontrol-patched"
unpack "qmail-1.03-tls20010627-spamcontrol142-patched.tgz"
cd ${WORKDIR}/"qmail-1.03-tls-spamcontrol"
epatch ${FILESDIR}/"chkuser-2.0.8.patch"
epatch ${FILESDIR}/"qmail-queue.patch"
perl -pi -e "s|extern int errno;|#include <errno.h>|" error.h
perl -pi -e "s|head -1|head -n 1|g" Makefile
perl -pi -e "s|head -1|head -n 1|g" Makefile.142
perl -pi -e "s|head -1|head -n 1|g" Makefile.orig
make
make setup check
cd ${WORKDIR}
einfo "qmailadmin"
unpack "qmailadmin-1.2.10.tar.gz"
cd ${WORKDIR}/"qmailadmin-1.2.10"
./configure --enable-cgibindir=/home/ovh/cgi-bin \
--enable-htmldir=/home/ovh/www/ \
--enable-imagedir=/home/ovh/www/images/qmailadmin \
--enable-imageurl=/images/qmailadmin \
--enable-modify-spam \
--enable-spam-command="|preline /usr/local/bin/maildrop /etc/mailfilter"
make
make install-strip
chmod 755 /home/ovh/cgi-bin/qmailadmin
chown vpopmail.vchkpw -Rf /home/ovh/cgi-bin
chown qmaild /var/qmail/bin/qmail-smtpd
chgrp nofiles /var/qmail/bin/qmail-smtpd
chmod 6555 /var/qmail/bin/qmail-smtpd
}
src_install() {
newinitd ${FILESDIR}/qmail.initd qmail
einfo "install ok"
}
pkg_postinst() {
local hostname=`hostname`
perl -pi -e "s|nsXXXXXX.ovh.net|$hostname|" /etc/init.d/qmail
perl -pi -e "s|nsXXXXXX.ovh.net|$hostname|" /etc/init.d/.*qmail
}
Pour faire simple, j'ai uniquement ajouter les lignes source de QMailAdmin et je le recompile avec le support spam.
3# Installer le tout
ebuild qmail-ovh-1.0.3-r1.ebuild digest
/etc/init.d/qmail stop
emerge qmail-ovh
/etc/init.d/qmail start
Et voilà c'est fini.
C'est en place sur mon serveur depuis 48 heures sans accrocs.
Attention tout de même à bien cocher la case "Détection des spams ?" dans QmailAdmin pour les comptes existants qui souhaitent jouir de cette fonctionnalité.