Courier-0.45.5

Introduction à Courier

Le package Courier contient un agent de transport de courriers électroniques (MTA). C'est utile pour envoyer des courriers aux autres utilisateurs de votre machine. Il peut aussi être configuré comme serveur central de mail pour votre domaine ou comme agent de relais de courriers. Le package Courier inclut aussi une interface de courriers électroniques basé sur le web, IMAP, IMAP-SSL, POP3 et POP3-SSL.

Informations sur le package

Installation de Courier

Avant de compiler le programme, vous devez créer les utilisateurs et groupes qui seront attendues lors de l'exécution du script d'installation. Ajoutez les utilisateurs et groupes avec les commandes suivantes:

groupadd courier &&
useradd -c 'Courier Mail Server' -d /dev/null -g courier -s /bin/false courier

Vous avez aussi besoin de créer un utilisateur bin. Si vous avez déjà cet utilisateur, cette étape peut être ignorée.

useradd -c 'bin' -d /dev/null -g bin -u 1 bin

Ceci crée un répertoire /var/run/courier où tous les fichiers pid du MTA Courier existeront. Ceci permettra la création de courierfilter.pid. Sans l'exécution de courierfilter, le MTA Courier ne fonctionnera pas. Lancez les commandes suivantes pour créer /var/run/courier :

mkdir /var/run/courier &&
chown courier:courier /var/run/courier

Installez courier en lançant les commandes suivantes :

./configure --prefix=/usr --libexecdir=/usr/lib/courier \
    --datadir=/usr/share/courier --sysconfdir=/etc/courier \
    --localstatedir=/var/lib/courier --with-piddir=/var/run/courier \
    --disable-root-check --with-mailuser=courier --with-mailgroup=courier \
    --with-paranoid-smtpext --disable-autorenamesent \
    --enable-workarounds-for-imap-client-bugs --with-db=gdbm &&
make &&
make install &&
make install-configure

Explication des commandes

--libexecdir=/usr/lib/courier : spécifie le répertoire contenant les programmes et bibliothèques qui ne pouvent pas être exécutés directement à partir de la ligne de commande.

--datadir=/usr/share/courier : spécifie le répertoire où différents scripts shell, scripts Perl et fichiers de données seront installés.

--localstatedir=/var/spool/courier : spécifie le répertoire qui contiendra la liste des mails et d'autres données temporaires.

--with-piddir=/var/run/courier : spécifie le répertoire où les fichiers PID de Courier sont stockés lorsque Courier est actif.

--disable-root-check : permet la construction de Courier en tant qu'utilisateur root.

--with-mailuser=courier : tous les démons Courier, sauf deux, sont exécutés en tant qu'utilisateur non privilégiés. Cette option spécifie l'identifiant utilisateur que Courier installera et utilisera pour s'exécuter.

--with-mailgroup=courier : identique à --with-mailuser mais pour l'identifiant du groupe.

--with-paranoid-smtpext : soyez paranoïaque sur les extensions spécifiques à Courier pour ESMTP avec les serveurs distants. Le serveur de mails Courier définit et implémente certaines extensions expérimentales d'ESMTP : XVERP et XEXDATA. Des problèmes pourraient résulter dans le fait qu'une autre personne utilise le même nom pour implémenter d'autres extensions. Si cette option est spécifiée, le serveur ESMTP de Courier avertira aussi d'une capacité ESMTP appelée XCOURIEREXTENSIONS et ne reconnaîtra pas toutes les extensions spécifiques à Courier sauf si le serveur de courriers distants avertit aussi de cette capacité ESMTP.

--disable-autorenamesent : ne pas renomme le répertoire Sent tous les mois. Cette option peut aussi être contrôlée par la variable d'environnement SQWEBMAIL_AUTORENAMESENT.

--enable-workarounds-for-imap-client-bugs : il existe plusieurs bogues confirmés dans quelques clients IMAP qui n'implémentent pas proprement le protocole IMAP4rev1. Cette option active des contournements pour ces clients IMAP bogués. Note : make check échouera si cette option est utilisée. Vous devez commencer par configure sans cette option puis, dans le cas où tous les tests de post-configuration ont réussi, relancer configure avec cette option et recompiler.

--with-db=gdbm : Courier requiert soit la bibliothèque de base de données GDBM soit DB. GDBM est utilisé si les deux sont présents. Cette option force la sélection de la bibliothèque de base de données GDBM car le support de DB est actuellement cassé.

--with-ispell=/usr/bin/aspell : le serveur webmail de Courier peut utiliser un vérificateur d'orthographe si configure trouve ispell ou si vous indiquez explicitement l'emplacement d'aspell.

--enable-mimetypes=[emplacement des fichiers mime.types] : utilisez cette option si vous recevez une erreur disant que le fichier mime.types est introuvable.

Configurer Courier

Fichier de configuration

/etc/courier/*

Informations de configuration

Faites les modifications suivantes dans le fichier /etc/courier/authmysqlrc si vous utilisez MySQL :

MYSQL_SERVER            localhost
MYSQL_USERNAME          courier
MYSQL_PASSWORD          [votre choix] 
MYSQL_SOCKET            /tmp/mysql.sock
MYSQL_PORT              3306
MYSQL_DATABASE          courier_mail
MYSQL_USER_TABLE        users
MYSQL_CLEAR_PWFIELD     clear
DEFAULT DOMAIN          [votre domaine]
MYSQL_QUOTA_FIELD       quota

Si vous utilisez PAM:

cat > /etc/pam.d/esmtp << "EOF
# Début /etc/pam.d/esmtp

auth            required                pam_unix.so try_first_pass
account         required                pam_unix.so
session         required                pam_unix.so

# Fin /etc/pam.d/esmtp
EOF
cat > /etc/pam.d/pop3 << "EOF
# Début /etc/pam.d/pop3

auth            required                pam_unix.so try_first_pass
account         required                pam_unix.so
session         required                pam_unix.so

# Fin /etc/pam.d/pop3
EOF
cat > /etc/pam.d/imap << "EOF
# Début /etc/pam.d/imap

auth            required                pam_unix.so try_first_pass
account         required                pam_unix.so
session         required                pam_unix.so

# Fin /etc/pam.d/imap
EOF
cat > /etc/pam.d/webmail << "EOF
# Début /etc/pam.d/webmail

auth            required                pam_unix.so try_first_pass
account         required                pam_unix.so
session         required                pam_unix.so

# Fin /etc/pam.d/webmail
EOF

Connectez-vous à la base de données MySQL :

mysql -p

Cette commande créera la base de données pour l'authentication :

CREATE DATABASE courier_mail;
USE courier_mail

Cette commande initialisera la table des utilisateurs (users) pour la base de données courier_mail :

CREATE TABLE users (
id                    char(128) DEFAULT '' NOT NULL,
crypt                 char(128) DEFAULT '' NOT NULL,
clear                 char(128) DEFAULT '' NOT NULL,
name                  char(128) DEFAULT '' NOT NULL,
uid                   int(10) unsigned DEFAULT '65534' NOT NULL,
gid                   int(10) unsigned DEFAULT '65534' NOT NULL,
home                  char(255) DEFAULT '' NOT NULL,
quota                 char(255) DEFAULT '' NOT NULL,
KEY id (id(128))
);

Ceci ajoutera l'utilisateur courier que nous avions spécifié un peu plus tôt dans le fichier /etc/courier/authmysqlrc :

GRANT ALL PRIVILEGES ON *.* TO courier@localhost IDENTIFIED BY '[mot_de_passe]' WITH GRANT OPTION;
QUIT

Configuration générale pour le courrier

Vous aurez besoin de créer les fichiers suivants avec le contenu spécifié.

/etc/courier/defaultdomain

cat > /etc/courier/defaultdomain << "EOF"
[votre_domaine]
EOF

/etc/courier/me

cat > /etc/courier/me << "EOF"
[servername.votre_domaine]
EOF

/etc/courier/locals

cat > /etc/courier/locals << "EOF"
localhost
[votre_domaine]
EOF

/etc/courier/esmtpacceptmailfor.dir/system

cat >/etc/courier/esmtpacceptmailfor.dir/system << "EOF"
localhost
[votre_domaine]
EOF

Vous aurez besoin d'éditer le fichier aliases et de modifier l'entrée suivante.

/etc/courier/aliases/system

postmaster: [your administrator email]

Si vous voulez empêcher l'accès à quelques hôtes pour envoyer des courriers, vous devrez éditer /etc/courier/smtpaccess/default.

Après avoir terminé les étapes ci-dessus, vous devrez lancer les commandes suivantes:

makesmtpaccess
makehosteddomains
makealiases

Configuration SMTP/SMTMP-SSL

Cette section activera le serveur SMTP de Courier

/etc/courier/esmtpd

ESMTPDSTART=YES

/etc/courier/esmtpd-ssl

ESMTPDSSLSTART=YES

ConfigurationPOP3/POP3-SSL

Cette section activera le serveur POP3 de Courier

/etc/courier/pop3d

POP3DSTART=YES

/etc/courier/pop3d-ssl

POP3DSLLSTART=YES

Configuration IMAP/IMAP-SSL

Cette section activera le serveur IMAP de Courier

/etc/courier/imapd

IMAPDSTART=YES

/etc/courierd/imapd-ssl

IMAPDSSLSTART=YES

Création des répertoires de courrier des utilisateurs système

Cette section expliquera comment créer les répertoires MailDirs de vos utilisateurs système.

cd /home/[username]
maildirmake Maildir
chown [username].[username] Maildir -R

Configuration pour les utilisateurs virtuels

Cette section expliquera comment configurer Maildir pour vos utilisateurs virtuels.

echo "vmailman:x:9000:9000:Virtual Mailman:/home/vmailman:/bin/bash" >> /etc/passwd
echo "vmailman:x:9000:" >> /etc/group

Maintenant, configurons maildir pour ces utilisateurs virtuels.

cd /home/vmailman
mkdir [virtual_user]
cd [virtual_user]
maildirmake Maildir
chown vmailman.vmailman Maildir -R

Ajoutez l'utilisateur virtuel dans la base de données MySQL. Vous devez entrer au moins une version du mot de passe soit en clair soit crypté.

mysql -ucourier -p[password] courier-mail

insert into users values('[virtual_users]@[domain.com],
'[encrypted password or blank]','[clear text password or blank]',
'[User's Name]',9000,9000,'[location of Maildir]','[Quota in Bytes']);

exemple

insert into users values ('blfsuser@linuxfromscratch.org','
','password','BLFS User',9000,9000,'/home/vmailman/blfsuser','');

Configuration pour le Webmail

Cette section expliquera comment configurer le système webmail de Courier.

Vous avez besoin de copier le fichier webmail de /usr/sbin/courier/webmail/webmail dans le répertoire cgi-bin de votre serveur Apache.

cp -a /usr/sbin/courier/webmail/webmail /var/www/cgi-bin

Vous aurez ensuite besoin de copier les images dans un sous-répertoire du répertoire htdocs de votre serveur Apache. Le répertoire nécessite d'être nommé webmail ou vous avez besoin de le spécifier lors de la phase du configure avec --enable-imageurl=/url.

cp -a /usr/share/courier/sqwebmail/images /var/www/htdocs/webmail

Configuration du webmail

Cette section expliquera comment installer le système d'administration web de Courier.

Vous avez besoin de copier le fichier webadmin de /usr/sbin/courier/webmail/webmin dans le répertoire cgi-bin de votre serveur Apache.

cp -a /usr/sbin/courier/webmail/webadmin /var/www/cgi-bin

/etc/courier/webadmin/password

cat > /etc/courier/webadmin/password << "EOF"
[password]
EOF

Si vous n'utilisez pas SSL sur votre serveur Apache, vous aurez besoin d'ajouter /etc/courier/webadmin/unsecureok, de façon à pouvoir utiliser l'outil d'administration web.

touch /etc/courier/webadmin/unsecureok

Script de démarrage Courier

Le script de démarrage de Courier est le plus facile à utiliser. Il créera automatiquement les fichiers de données manquants et les certificats SSL s'ils n'existent pas. Pour installer le fichier init.d pour Courier, vous aurez besoin d'utiliser les commandes suivantes:

cp /usr/src/courier-0.45.5/courier.sysvinit /etc/rc.d/init.d/courier &&
chmod 755 /etc/rc.d/init.d/courier

Créez les liens symboliques vers ce fichier dans les répertoires rc.d adéquats avec les commandes suivantes:

cd /etc/rc.d/init.d &&
ln -sf ../init.d/courier ../rc0.d/K25courier &&
ln -sf ../init.d/courier ../rc1.d/K25courier &&
ln -sf ../init.d/courier ../rc2.d/K25courier &&
ln -sf ../init.d/courier ../rc3.d/S35courier &&
ln -sf ../init.d/courier ../rc4.d/S35courier &&
ln -sf ../init.d/courier ../rc5.d/S35courier &&
ln -sf ../init.d/courier ../rc6.d/K25courier

Contenu

Le package Courier contient addcr, authenumerate, cancelmsg, courier, courier-config, courieresmtpd, courierfilter, courierldapaliasd, courierlogger, couriermlm, couriertcpd, couriertls, deliverquota, dotforward, esmtpd, esmtpd-msa, esmtpd-ssl, filterctl, imapd, imapd, imapd-ssl, lockmail, mailbot, maildiracl, maildirkw, maildirmake, maildrop, makeacceptmailfor, makealiases, makedat, makehosteddomains, makemime, makepercentrelay, makesmtpaccess, makesmtpaccess-msa, makeuserdb, makeuucpneighbors, mimegpg, mkesmtpdcert, mkimapdcert, mkpop3dcert, pop3d, pop3d-ssl, preline, pw2userdb, reformail, reformime, rmail, sendmail, sharedindexinstall, sharedindexsplit, showconfig, showmodules, testmxlookup, userdb, userdbpw, vchkpw2userdb et webgpg.

Description

cancelmsg

cancelmsg supprime un message de la queue des courriers.

courier

courier est un agent de transport de courriers électroniques modulaires et multi-protocoles. La commande courier est une commande administrative et la plupart de ces options sont seulement disponibles pour le superutilisateur.

courierfilter

La commande courierfilter installe et désinstalle les filtres globaux. Ils sont utilisés pour sélectionner des blocs de courriers non sollicités.

couriermlm

couriermlm est le gestionnaire de listes de diffusion Courier.

filterctl

La commande filterctl installe et désinstalle les filtres globaux. Ils sont utilisés pour sélectionner des blocs de courriers non sollicités.

lockmail

lockmail est un outil d'aide pour travailler avec des fichiers mailbox.

mailbot

mailbot lit un message électronique sur l'entrée standard et crée un message électronique en réponse.

maildirkw

maildirkw modifie les mots clés du message maildir compatible avec Courier-IMAP.

maildrop

maildrop est un MDA local de remplacement qui inclut un langage de filtres.

makeacceptmailfor

makeacceptmailfor construit une liste de domaines à partir desquels des courriers électroniques sont acceptés.

makealiases

makealiases construit une liste des alias à partir des répertoires /etc/courier/aliases ou /etc/courier/aliasdir directories.

makehosteddomains

makehostedomains construit une base de données de domaines compris à partir de hosteddomains .

makepercentrelay

makepercentrelay construit une liste de domaines "%-relayed" à partir du répertoire percentrelay.dir.

makesmtpaccess

makesmtpacces construit le fichier d'accès au serveur ESMTP à partir du répertoire /etc/courier/smtpaccess.

makesmtpaccess-msa

makesmtpaccess-msa construit le fichier d'accès au serveur à partir du répertoire ESMTP /etc/courier/smtpaccess. Cette liste est pour le protocole MSA.

makeuucpneighbors

makeuucpneighbors construit une liste de destinataires UUCP utilisant /etc/courier/uucpneighbors.

reformail

Le programme reformail lit un message sur l'entrée standard, la reformatte d'une autre façon et écrit le message sur la sortie standard.

reformime

reformime est un outil pour reformatter les messages MIME.

sendmail

La commande sendmail lit un message et le donne à ses destinataires. Cette commande sendmail fait partie du serveur de courriers électroniques Courier bien qu'il essaie d'émuler le comportement du MTA sendmail.

showconfig

showconfig affiche la configuration actuelle de Courier.

showmodules

showmodules affiche les modules actuels de Courier.

testmxlookup

testmxlookup liste les noms et adresses IP des relais de courriers électroniques. C'est utile pour diagnostiquer les problèmes d'envoi de courriers.