Serveur de courriel

De Cliss XXI
Sauter à la navigation Sauter à la recherche

Le but de l'article est de mettre en place un serveur de courriel relativement simple, de la manière la plus automatisée possible.

Scripts à venir.

On se basera sur Postfixadmin (la version SVN, sous GNU GPL, pas la dernière stable), ainsi que sur l'excellent HOWTO associé, qui n'a pour défaut que d'être un peu fouillis (gère Debian et FreeBSD suivant plusieurs variantes de configuration), et surtout de ne pas être automatisé! :)

Liens

Supprimer les comptes inactifs postfixadmin

Il y a un script dans ADDITIONS/ mais il nécessite une configuration.

cd /var/mail/virtual && ls | while read email; do \
  if [ $(mysql postfix -N -B -e "SELECT count(*) FROM mailbox WHERE username='$email';") = 0 ]; then \
    echo $email; fi; done

Faites un rm -rf plutôt qu'un echo quand vous avez vérifié :)

Gestion de types de mot de passe

Avec le mot de passe ttest
Passe crypté Courier (authdaemon) Postfix (saslauthd) Postfixadmin (functions.php:pacrypt)
{md5}$1$84371814$zHWIgYglyS4JAUkTMQOLY/ no no no
$1$84371814$zHWIgYglyS4JAUkTMQOLY/ OK OK OK si $CONF['encrypt'] == 'md5crypt' ou 'system'
{crypt}ALZQB9aSFArMM no no no
ALZQB9aSFArMM OK OK OK si $CONF['encrypt'] == 'system'

Occupation disque

cd /var/mail/virtual/ && du -s */ | sort -rn | awk '{ print int($1 / 1024) "M\t"$2 }'

Partager le courriel en interne

  • Installer courier-imap sur un poste (serveur)
  • Utiliser un même compte sur chacun des postes clients
  • Dans /etc/courier/imapd : IMAP_ENHANCEDIDLE=1 , pour synchroniser les différents clients immédiatement après chaque opération (ajout, suppression...).

Test/debug d'une configuration

  • Exim (résultat sur la sortie standard; génial!):
sendmail -bt adresse # -bt == 'back-trace'
sendmail -bt -d adresse # -d == 'debug', more verbose
  • Postfix
    • Tester l'envoi sur une adresse, résultat par mail [1], nettement moins pratique qu'Exim:
sendmail -bv adresse # sans envoi réel
sendmail -v adresse # avec envoi réel
    • Couper l'envoi des e-mails sur une configuration de test:
echo "/.*/	DISCARD" > /etc/postfix/access-regexp
echo "smtpd_client_restrictions = check_recipient_access regexp:/etc/postfix/access-regexp" >> /etc/postfix/main.cf
    • Couper les e-mails en sortie sur une configuration de test (sauf relay_domains), dans main.cf:
default_transport = discard:
  • Courier, ajouter dans /etc/courier/imapd:
IMAPDEBUGFILE=imapdebug.txt

En cas de test d'un programme qui envoie des courriels, pour éviter tout débordement, on peut ignorer silencieusement tout les courriels externes. Sous Postfix:

default_transport = discard:

À compléter éventuellement avec un mouchard qui récupère tous les courriels émis:

always_bcc = postfix-trace