# 7.7. Comment dois-je configurer sendmail pour qu'il travaille avec Kmail si j'utilise une connection téléphonique ("dial-up") ?

Les instructions suivantes ont été recopiées presque mot pour mot à partir de la page du groupe UCT Linux User's sur configuring Sendmail for Dial-up connections.

## 7.7.1. Etape 1: Hôte Mascarade (NdT: "Masquerade Host").

Vous devez éditer `/etc/sendmail.cf` pour y définir quel hôte servira pour la "mascarade". Cherchez une ligne qui dit quelque chose comme:

     # who I masquerade as (null for no masquerading) (see also $=M)
     DM

et ajoutez votre adresse à la fin de la ligne qui commence par "DM". Notre utilisateur l'a changée ainsi :

     DMhendrix.org

Quand il envoie du courrier, les champs `Return-Path` et `From:` indiqueront désormais que le courrier provient de hendrix.org. Ceci évite les messages "cannot route to sender" que certains hôtes pourraient générer parce que votre machine ne dispose pas d'une entrée DNS. Mais nous devons encore changer la partie utilisateur de l'adresse email, parce que si notre utilisateur envoie un courrier maintenant, le champ `From:` indiquera `mj@hendrix.org`, ce qui n'est pas correct. Si vous vous loguez sur votre machine avec le même nom d'utilisateur que celui qui est dans la partie gauche de votre adresse email, vous pouvez immédiatement redémarrer sendmail. Mais si vous avez des noms d'utilisateur différents (comme dans notre exemple), vous devez ajouter une base de données des utilisateurs.

## 7.7.2. Etape 2: Créer une base de données des utilisateurs

Créez un fichier sur le modèle suivant:

     loginname:mailname      First_Last
     First_Last:maildrop     loginname

"loginname" est le nom sous lequel vous vous loguez sur votre machine (dans ce cas mj), "First_Last" est la partie de gauche de votre adresse email (dans notre cas mjturner). Dans notre exemple, notre utilisateur a donc créé un fichier nommé `/etc/userdb` et contenant ce qui suit :

     mj:mailname     mjturner@hendrix.org
     mjturner:maildrop       mj

Une fois que ceci est fait, vous devez convertir le fichier texte `/etc/userdb` en une base de données au format Berkeley "db", que sendmail pourra comprendre. Pour cela, vous devez lancer makemap ainsi :

     # makemap btree /etc/userdb.db < /etc/userdb

Ceci créera la base `/etc/userdb.db` à partir du fichier texte `/etc/userdb`. Vous devez vous souvenir que vous devez le faire chaque fois que vous changez `/etc/userdb` sinon sendmail n'utilisera pas votre base de données la plus récente lorsqu'il enverra du courrier.

## 7.7.3. Etape 3: Ajouter la base de données utilisateurs à sendmail.cf

Vous devez demander à sendmail d'utiliser votre base de données d'utilisateurs (`/etc/userdb.db`) quand il envoie du courrier. La syntaxe est légèrement différente selon que vous utilisez un ficher de configuration 8.7.x/8.8.x ou 8.6.x. Vous pouvez savoir quelle version vous avez en recherchant la chaîne de caractères "DZ" (`grep ˆDZ /etc/sendmail.cf`). Par exemple, un fichier de configuration 8.8.0 rendra `DZ8.8.0`.

### 7.7.3.1. Fichier de configuration 8.6.x

Si vous utilisez un fichier de configuration 8.6.x, cherchez une ligne commençant par :

         # list of locations of user database file (null means no lookup)
         OU

et ajoutez l'emplacement de votre base d'utilisateurs. Notre utilisateur a changé la ligne ainsi :

         OU/etc/userdb.db

### 7.7.3.2. Fichier de configuration 8.7.x ou 8.8.x

Si vous utilisez un fichier de configuration 8.7.x ou 8.8.x, cherchez une ligne commençant par :

         # list of locations of user database file (null means no lookup)
         O UserDatabaseSpec=

et ajoutez l'emplacement de votre base d'utilisateurs. Notre utilisateur la modifierait ainsi :

         O UserDatabaseSpec=/etc/userdb.db

## 7.7.4. Etape 4: Redémarrer sendmail

Après avoir effectué ces changements, vous devez redémarrez sendmail en tant que super-utilisateur.

     # ps aux | grep sendmail | grep -v grep
     root        64  0.0  0.0  1208     0  ?  SW  11:45   0:00 (sendmail)

     # kill -HUP 64

(utilisez `ps -ef` au lieu de `ps aux` si vous utilisez SysV).

Sendmail va maintenant relire son fichier de configuration (`/etc/sendmail.cf`) et tout devrait fonctionner. Quand vous enverrez du courrier, le champ From de l'en-tête sera une adresse email valide et pas l'adresse que vous avez sur votre machine. Par exemple, lorsque notre utilisateur enverra un message, on lira : `From: mjturner@hendrix.org` dans l'en-tête. Ceci fonctionne avec tous les agents de courrier électronique (Mutt, Elm, Pine, mh, etc) parce que la traduction de l'adresse est effectuée au niveau de l'agent de transport. Concrètement, vous pourrez utiliser n'importe quel programme pour rédiger vos messages, votre adresse sera toujours correcte.

## 7.7.5. Etape 5: Configurer un relais "astucieux" ("smart relay", NdT)

L'arrivée de votre message à bon port peut prendre un bon moment, car sendmail doit se connecter au serveur de courrier du destinataire. Ce temps devra être passé en ligne, ce qui peut s'avérer coûteux. Cependant, si vous configurez sendmail pour qu'il utilise un relais "astucieux", il délivrera tout le courrier à ce relais et le relais se chargera de l'amener à destination. Le serveur de courrier de votre FAI fera un relais idéal.

Dans notre exemple, changeons :

     # "Smart" relay host (may be null)
     DS

en :

     # "Smart" relay host (may be null)
     DSmail.hendrix.org

N'oubliez pas de redémarrez sendmail après avoir fait ceci (regardez l'étape 4). Tout le courrier non local sera désormais envoyé à `mail.hendrix.org` qui le délivrera à sa destination finale.