Ce n'est pas tout à fait ça : en fait, je voudrais utiliser le smtp local pour les envois en local et vers l'extérieur. Et il est certainement possible avec un même compte d'utiliser le smtp local pour les envois vers l'extérieur. Restent à savoir comment faire. Mais un début de solution apparaît après recherches et tests (voir ci-dessous).
A force de vouloir être précis, je suis devenu de moins en moins clair
Je vais donc essayer de reformuler mon pb plus simplement:
- Tous les utilisateurs de mon LAN ont une adresse de courrier au niveau de notre intranet. Dans un souci d'économiser de la bande passante (pour envoyer un courrier à l'étage en-dessous, il doit passer à Pétaouchnok), je me suis dit qu'il serait intéressant d'utiliser les fonctionnalités de SME Server.
- Je ne peux pas déclarer mon domaine local au niveau des DNS de notre intranet. Si c'était possible, tous les pbs s'évanouiraient d'un coup, enfin on peut l'espérer.
- Un user sur mon LAN a donc une adresse sur SME
user@mondomaine.local et sur l'intranet une adresse
user@intranet.general.
- Pour un envoi en local son adresse doit apparaître pour le destinataire
user@mondomaine.local, pour l'extérieur
user@intranet.general.
En résumé :
1- pour un destinataire local : pas de pb
2- pour récupérer les courriers d'un utilisateur local : pas de pb a priori avec smeserver-fetchmail
3- pour un destinataire extérieur à mon LAN : SME doit trouver le chemin pour envoyer le courrier
4- le destinataire extérieur doit pouvoir répondre à l'expéditeur local (le header du message de ce dernier doit donc comporter les renseignements relatifs à son adresse courrier intranet)
1 et 2 sont réglés.
Venons-en maintenant aux recherches et aux tests :
Sur le site [url]qmail.free.fr[/url] (dommage que la traduction française du manuel de qmail 1.03 n'ait pas été réalisée, mon anglais est assez pauvre), Djalil Chafaï écrit :
smtproutes
Le fichier de contrôle /var/qmail/control/smtproutes permet de spécifier les relais SMTP que qmail-remote devra contacter pour router les courriels sortants. voir la page de manuel pour plus de détails. Voici un exemple :
premier.domaine:mail.premier.domaine
second.domaine:mail.second.domaine:24
:mail.autre.domaine
Les courriels à destination de premier.domaine seront transmis par SMTP au port TCP 25 de mail.premier.domaine, ceux à destination de second.domaine seront transmis par SMTP au port TCP 24 de mail.second.domaine. Quant aux autres courriels, ils seront transmis au port TCP 25 de mail.autre.domaine.
qmail-remote utilise aussi les fichiers de contrôle helohost, timeoutconnect et timeoutremote, voir la page de manuel de qmail-remote.
J'ai ajouté à smtproutes
intranet.general:son adresse IP ou son nom domaine ou d'hôte
Ca passe, le 3 est donc réglé. Mais dans l'entête du message reçu on trouve
user@mondomaine.local et une réponse de l'extérieure à cette adresse n'aboutira pas. Et si on paramètre les comptes courriers de tous les utilisateurs locaux avec une adresse de réponse du type
user@intranet.general, on n'aura pas résolu le pb car les messages de réponse continueront à transiter par l'extérieur pour aller à "l'étage d'en dessous"
Puis on trouve sur le même site (j'ai mis en gras une remarque de l'auteur qui pourrait en intéresser plus d'un) :
Réécriture d'adresse d'expéditeur
Si vous désirez modifier votre identité apparente dans les courriels que vous envoyez, il vous suffit d'utiliser les variables d'environnement QMAILHOST, QMAILUSER et QMAILNAME. Ces variables sont prises en considération par qmail-inject lors de l'injection de vos courriels dans la queue (cf. la page de manuel). Les champs From: et Return-Path: de vos courriels sont alors modifiés automatiquement. Celà s'avère très pratique lorsque votre machine n'est pas en permanence sur l'Internet et ne s'y connecte que de façon intermittante via une adresse IP dynamique.
On peut contrôler les modifications qu'apporte qmail-inject aux entêtes en utilisant la variable d'environnement QMAILINJECT. Voir la page de manuel de qmail-inject pour les détails.
Voici par exemple ce que j'ai rajouté à mon fichier .bashrc :
export QMAILHOST="mail.dotcom.fr"
export QMAILUSER="dchafai"
export QMAILNAME="Djalil Chafai"
export QMAILINJECT=f
Ainsi, les messages que j'envoie apparaissent comme provenant de
dchafai@mail.dotcom.fr (Djalil Chafai). Cette solution est interressante car elle marche avec tous les MUA faisant appel au wrapper sendmail de qmail, lui même appelant qmail-inject.
De plus, cela permet de se débarrasser des problèmes de paranoïa des passerelles de courriels de certains FAI.En fait, pour déterminer le nom d'utilisateur, qmail-inject utilise les variables d'environnement suivantes par ordre décroissant de préférence : QMAILUSER, MAILUSER, USER et LOGNAME. Pour le nom de machine, qmail-inject utilise la variable qmail defaulthost. Elle peut être cependant forcée par les variables d'environnement QMAILHOST et MAILHOST. Le nom personnel est quant à lui donné par les variables d'environnement QMAILNAME, MAILNAME et NAME.
Pour le cas N° 4, là je sèche : je ne sais pas où et comment paramétrer ces variables, et je ne sais pas si qmail est capable de faire ça à la volée en fonction de chaque utilisateur.