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.
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.
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.
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.
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 |
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 |
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.
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.
Précédent | Sommaire | Suivant |
Comment puis-je savoir combien de messages non lus se trouvent dans un dossier donné ? | Niveau supérieur | Epilogue |