J'ai fait la modification suivante pour mon coloc' Ludo qui en a besoin ces temps-ci. Il a besoin d'une boite mails ces temps-ci. Normalement, une fois que Qmail et LDAP sont configurés, il faut ajouter les 3 entrées suivantes à  l'annuaire pour chaque utilisateur
Champs | Valeur |
qmailDotMode | ldapwithprog |
deliveryProgramPath | /var/qmail/bin/spamcheck.sh |
deliveryMode | nolocal |
L'idée provient de http://www.mail-archive.com/qmail-ldap@argus.pipeline.ch/msg06122.html
Le contenu du script spamcheck.sh est
/usr/bin/spamc |/usr/local/bin/maildir ./Maildir/
Rappel: SMBLDAP-QMAIL-TOOLS
Pour ceux qui ont un serveur Samba monté en PDC avec OpenLDAP et qui souhaitent configuré ce dernier avec un serveur de mail comme qmail, il existe aussi les smbldap-qmail-tools disponibles à Â
http://smbldap-addons.sourceforge.net/smbldap-qmail-tools/
Pour monter un tel serveur, deux liens bien intéressant
Surtout beaucoup de patience pour le monter car il en faut en suivant les diverses manip'...mais le jeu en vaut la chandelle!
Spamc
Il faut aussi avoir installer spamc et spamassassin. Voici c un descriptif de spamc fourni par apt-cache sur Ubuntu
root@olivia:~# apt-cache show spamc
Package: spamc
Priority: optional
Section: mail
Installed-Size: 168
Maintainer: Duncan Findlay
Architecture: i386
Source: spamassassin
Version: 3.2.3-0.volatile1
Depends: libc6 (>= 2.3.6-6), libssl0.9.8 (>= 0.9.8c-1), zlib1g (>= 1:1.2.1)
Suggests: spamassassin
Conflicts: spamassassin (<< 2.30-2)
Filename: pool/volatile/main/s/spamassassin/spamc_3.2.3-0.volatile1_i386.deb
Size: 70290
MD5sum: 4b5efc0020b846897d5afb0fdc814345
SHA1: ac81d80d098366b593895c3643b4cc1b7804306a
SHA256: ba8f2238d3cb55183362bfa6acff80d66f18349cf775f2329412e37e37486700
Description: Client for SpamAssassin spam filtering daemon
spamc is the client to communicate with spamd, the daemonized form of
SpamAssassin (see the spamassassin package). It is written in C for
maximum speed and minimum loading overhead.
.
spamc is quite useful for integrating spamassassin into an MTA or
into a .procmailrc file because of its speed.
.
This package is useless unless you have spamassassin installed,
either on this machine or another local machine (i.e. a mail server).
.
Homepage: http://www.spamassassin.org
Package: spamc
Priority: optional
Section: universe/mail
Installed-Size: 164
Maintainer: Ubuntu MOTU Developers
Original-Maintainer: Duncan Findlay
Architecture: i386
Source: spamassassin
Version: 3.1.7-2ubuntu1
Depends: libc6 (>= 2.5-0ubuntu1), libssl0.9.8 (>= 0.9.8c-1)
Suggests: spamassassin
Conflicts: spamassassin (<< 2.30-2)
Filename: pool/universe/s/spamassassin/spamc_3.1.7-2ubuntu1_i386.deb
Size: 75272
MD5sum: d8e4cefa71dc5fe2c8bf1f46eedcedd4
SHA1: 528b8249b60177a1dbeeb8c8be6d8e4707ffb15b
SHA256: 065f90cec4111edfb529fb3206a0840aac24043d679031a5efaa189a45e6b831
Description: Client for SpamAssassin spam filtering daemon
spamc is the client to communicate with spamd, the daemonized form of
SpamAssassin (see the spamassassin package). It is written in C for
maximum speed and minimum loading overhead.
.
spamc is quite useful for integrating spamassassin into an MTA or
into a .procmailrc file because of its speed.
.
This package is useless unless you have spamassassin installed,
either on this machine or another local machine (i.e. a mail server).
.
Homepage: http://www.spamassassin.org
Bugs: mailto:ubuntu-users@lists.ubuntu.com
Origin: Ubuntu
Script PHP pour ajouter les trois entrées requis
On partira ici du principe qu'on a un utilisateur déjà  référencé sous qmail-ldap. Ici il s'appelle ludovic.pires. Si on a compilé PHP avec LDAP, on peut recourir au script suivant en utilisant ldap_modifiy()
<?
$server = "localhost";
$port = "389";
$racine = "dc=chezdavid,dc=local";
// $rootdn = "uid=ludovic.pires,ou=Users,dc=chezdavid,dc=local";
$rootdn = "cn=admin,dc=chezdavid,dc=local";
$rootpw = "mot_de_passe";
echo "Connexion...\n";
$ds=ldap_connect($server);
if ($ds==1)
{
// on s'authentifie en tant que super-utilisateur, ici, ldap_admin
$r=ldap_bind($ds,$rootdn,$rootpw);
$entry["cn"]="ludovic.pires";
$entry["sn"]="ludovic.pires";
$entry["qmailDotMode"] = "ldapwithprog";
$entry["deliveryProgramPath"] = "/var/qmail/bin/spamcheck.sh";
$entry["deliveryMode"] = "nolocal";
$r=ldap_modify($ds, "uid=ludovic.pires,ou=Users,dc=chezdavid,dc=local",$entry);
echo "Deconnexion...\n";
ldap_close($ds);
}
else {
echo "Impossible de se connecter au serveur LDAP";
}
?>
On l'exécute en ligne de commande en faisant
/usr/lib/cgi-bin/php -q php_qmail_spam_add.php
Pour vérifier que tout a été ajoutée sans souci
root@olivia:~# smbldap-usershow ludovic.pires|grep -e qmailDotMode -e delivery
qmailDotMode: ldapwithprog
deliveryProgramPath: /var/qmail/bin/spamcheck.sh
deliveryMode: nolocal
Test
Depuis mon bureau, je me suis envoyé deux fois le même mail à  la maison, et en regardant les logs de spamd.log
root@olivia:~# tail -f /var/log/spamd.log
Wed Aug 6 11:06:32 2008 [5488] info: prefork: child states: II
Wed Aug 6 13:31:29 2008 [5623] info: spamd: connection from olivia.davidgis.fr [127.0.0.1] at port 45032
Wed Aug 6 13:31:29 2008 [5623] info: spamd: setuid to ludovic.pires succeeded
Wed Aug 6 13:31:29 2008 [5623] info: spamd: creating default_prefs: /home/user/ludovic.pires/.spamassassin/user_prefs
Wed Aug 6 13:31:29 2008 [5623] warn: config: cannot write to /home/user/ludovic.pires/.spamassassin/user_prefs: No such file or directory
Wed Aug 6 13:31:29 2008 [5623] info: spamd: failed to create readable default_prefs: /home/user/ludovic.pires/.spamassassin/user_prefs
Wed Aug 6 13:31:29 2008 [5623] info: spamd: processing message <1218022003.7698.0.camel@jdtecher.xerus.net> for ludovic.pires:1016
Wed Aug 6 13:31:31 2008 [5623] info: spamd: identified spam (10.8/5.0) for ludovic.pires:1016 in 2.2 seconds, 1111 bytes.
Wed Aug 6 13:31:31 2008 [5623] info: spamd: result: Y 10 - FB_BAD_ERECT scantime=2.2,size=1111,user=ludovic.pires,uid=1016,required_score=5.0,rhost=olivia.davidgis.fr,raddr=127.0.0.1,rport=45032,mid=<1218022003.7698.0.camel@jdtecher.xerus.net>,autolearn=no
Wed Aug 6 13:31:31 2008 [5488] info: prefork: child states: II
Wed Aug 6 13:35:12 2008 [5623] info: spamd: connection from olivia.davidgis.fr [127.0.0.1] at port 45188
Wed Aug 6 13:35:12 2008 [5623] info: spamd: setuid to ludovic.pires succeeded
Wed Aug 6 13:35:12 2008 [5623] info: spamd: creating default_prefs: /home/user/ludovic.pires/.spamassassin/user_prefs
Wed Aug 6 13:35:12 2008 [5623] warn: config: created user preferences file: /home/user/ludovic.pires/.spamassassin/user_prefs
Wed Aug 6 13:35:12 2008 [5623] info: spamd: processing message <1218022229.7698.2.camel@jdtecher.xerus.net> for ludovic.pires:1016
Wed Aug 6 13:35:12 2008 [5623] warn: pyzor: check failed: internal error
Wed Aug 6 13:35:15 2008 [5623] info: spamd: identified spam (10.8/5.0) for ludovic.pires:1016 in 2.5 seconds, 1111 bytes.
Wed Aug 6 13:35:15 2008 [5623] info: spamd: result: Y 10 - FB_BAD_ERECT scantime=2.5,size=1111,user=ludovic.pires,uid=1016,required_score=5.0,rhost=olivia.davidgis.fr,raddr=127.0.0.1,rport=45188,mid=<1218022229.7698.2.camel@jdtecher.xerus.net>,autolearn=no
Finalement les sous-répertoires de .spamassassin sont proprement créés.