Différences entre versions de « Serveur de courriel »

De Cliss XXI
Sauter à la navigation Sauter à la recherche
imported>SylvainBeucler
imported>SylvainBeucler
 
(6 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 16 : Ligne 16 :
 
* http://www.littleboboy.net/?2005/04/15/54-postfix-courier-imap: un autre HOWTO en français cette fois
 
* http://www.littleboboy.net/?2005/04/15/54-postfix-courier-imap: un autre HOWTO en français cette fois
 
* http://www.i-boot.net/mailserver/ : installation à base de LDAP liée avec EGroupWare, licence pas claire
 
* http://www.i-boot.net/mailserver/ : installation à base de LDAP liée avec EGroupWare, licence pas claire
 +
 +
== Supprimer les comptes inactifs postfixadmin ==
 +
 +
Il y a un script dans <code>ADDITIONS/</code> 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 <code>rm -rf</code> plutôt qu'un <code>echo</code> quand vous avez vérifié :)
 +
 +
== Gestion de types de mot de passe ==
 +
 +
{|
 +
|+ Avec le mot de passe <code>ttest</code>
 +
!Passe crypté !! Courier (authdaemon) !! Postfix (saslauthd) !! Postfixadmin (functions.php:pacrypt)
 +
|-
 +
| {md5}$1$84371814$zHWIgYglyS4JAUkTMQOLY/
 +
| no
 +
| no
 +
| no
 +
|-
 +
| $1$84371814$zHWIgYglyS4JAUkTMQOLY/
 +
| OK
 +
| OK
 +
| OK si <code>$CONF['encrypt'] == 'md5crypt'</code> ou <code>'system'</code>
 +
|-
 +
| {crypt}ALZQB9aSFArMM
 +
| no
 +
| no
 +
| no
 +
|-
 +
| ALZQB9aSFArMM
 +
| OK
 +
| OK
 +
| OK si <code>$CONF['encrypt'] == 'system'</code>
 +
|}
 +
 +
== Occupation disque ==
 +
 +
cd /var/mail/virtual/ && du -s */ | sort -rn | awk '{ print int($1 / 1024) "M\t"$2 }'
  
 
== Partager le courriel en interne ==
 
== Partager le courriel en interne ==
Ligne 28 : Ligne 67 :
 
  sendmail -bt adresse # -bt == 'back-trace'
 
  sendmail -bt adresse # -bt == 'back-trace'
 
  sendmail -bt -d adresse # -d == 'debug', more verbose
 
  sendmail -bt -d adresse # -d == 'debug', more verbose
* Postfix (résultat par mail, nettement moins pratique [http://www.postfix.org/DEBUG_README.html#trace_mail]):
+
* Postfix
 +
** Tester l'envoi sur une adresse, résultat par mail [http://www.postfix.org/DEBUG_README.html#trace_mail], nettement moins pratique qu'Exim:
 
  sendmail -bv adresse # sans envoi réel
 
  sendmail -bv adresse # sans envoi réel
 
  sendmail -v adresse # avec envoi réel
 
  sendmail -v adresse # avec envoi réel
* Couper l'envoi des e-mails sur une configuration de test:
+
** Couper l'envoi des e-mails sur une configuration de test:
 
  echo "/.*/ DISCARD" > /etc/postfix/access-regexp
 
  echo "/.*/ DISCARD" > /etc/postfix/access-regexp
 
  echo "smtpd_client_restrictions = check_recipient_access regexp:/etc/postfix/access-regexp" >> /etc/postfix/main.cf
 
  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 <code>main.cf</code>:
+
** Couper les e-mails en sortie sur une configuration de test (sauf relay_domains), dans <code>main.cf</code>:
 
  default_transport = discard:
 
  default_transport = discard:
 
* Courier, ajouter dans <code>/etc/courier/imapd</code>:
 
* Courier, ajouter dans <code>/etc/courier/imapd</code>:
 
  IMAPDEBUGFILE=imapdebug.txt
 
  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

Version actuelle datée du 13 septembre 2010 à 12:50

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