Sendmail simple sous FreeBSD

Auteur: Julio Merino

Traducteur: Viana Paizafiume

Date: 26 Mars 2002

Sendmail c'est le logiciel de transport du courier (MTA) le plus usuel sur tous les systèmes BSD et beaucoup de distributions Linux. C'est pour cela que je veux expliquer comment le configurer correctment sous FreeBSD, un processus assez simple grace aux facilites qui nous donne cette système.

Les fichiers de configuration de Sendmail que nous modifierons se trouvent dans le répertoire /etc/mail. Ces fichiers sont un complément des beaucoup d'autres inclus dans le répertoire /usr/share/sendmail/cf, mais que nous ne devrons jamais modifier.

Sendmail se configure à partir de certains fichiers avec une syntaxe un peu complexe ( dont l'extension est .cf ) dans les répertoires mentionnes precedemment. Dans les dernières versions de ce MTA, le procssus a été grandement simplifié, de manière que désormais, nous ne devrons pas toucher ces fichiers. Nous editerons à la place les fichiers avec l'extension .mc qui, une fois reécris, nous donnerons les precedents.

La version 8 de sendmail s'accompagne d'une nouvelle manière de générer les fichiers de configuration avec le pré-processeur m4, grâce auquel le travail de configuration à la main se fait à un niveau d'abstraction plus élevé

En fait les fichiers .mc se forment à partir de macros qui se repandent dans ses correspondantes fichiers.cf, et donnent lieu à un fichier de configuration vraiment complet. Le fichier qu'en realite lira Sendmail sera /etc/mail/sendmail.cf. Les autres fichiers avec des extensions semblables dans le répertoire de configuration ne serons pas utilisés directement.

Pour créer notre fichier de configuration nous nous baserons sur ce qui est inclus dans FreeBSD par défaut. Il est conseillé de nommer notre fichier avec le nom de la machine, si nous voulons mantenir divers fichier de configuration . Tapez:

# cd /etc/mail
# cp freebsd.mc klamath.mc

Le pas suivant c'est indiquer à FreeBSD quelle est notre fichier de configuration pour qu'il puisse automatiser diverses actions plus tard .Editez maintenant /etc/make.conf avec votre éditeur de texte préféré et tapez:

SENDMAIL_MC=/etc/mail/klamath.mc

Avant de procéder à la configuration, il est nécessaire de preciser comment nous convertirons notre fichier .mc en son correspondant.cf et comment nous indiquerons à Sendmail qu'il l'utilise. Avant tout nous ferons la conversion:

/etc/mail# make

Avec ça , FreeBSD nous donnera un fichier klamath.cf pret à l'emploi. Pour que Sendmail l'utilise il faudra le copier en sendmail.cf. Nous pouvons automatiser le processus en tapant:

/etc/mail# make install

Après rien de plus facile, redemarrez le MTA:

/etc/mail# make restart

Je ne pretend pas detailler dans cette article tous les possibles options de Sendmail, bien que je veuille vous donner quelques conseils utiles. Si vous avez besoin de plus d'information lisez /usr/share/sendmail/cf/README.

Beaucoup d'entre nous disposent d'un serveur de courrier chez son ISP. Si nous voulont l'utiliser au lieu de distribuer nous memes le courrier, il suffira que nous ajoutions la ligne suivante à notre fichier de configuration (klamath.mc), remplaçant le nom du serveur:

define(`SMART_HOST', `smtp.menta.net')

Si nous avons installé le logiciel procmail , pouvons indiquer à Sendmail qui l' utilise par defaut pour distribuer le courrier local. Pour ce faire nous devrons ajouter à notre configuration:

FEATURE(local_procmail)

La dernière fonction que je voulais vous commenter c'est genericstable. Elle nous aidera à reecrire le champ From: des messages sortants pour qu'il soient valides. Il est habituel que quand nous envoyons courrier local, ce champ reste intact ,avec le nom du serveur de notre machine; cela facilite le repostage des courriers locaux .

D'autre part, nous voulons aussi que quand nous envoyons du courrier sortant à un adresse d'internet en dehors de notre machine ,le champ From: soit modifie et reecrit de manière que les gents peuvent nous repondre à notre adresse d'internet (habituelment celui de notre ISP).

Pour obtenir cela, nous ajouterons les lignes suivantes à notre fichier de configuration:

FEATURE(masquerade_envelope)
FEATURE(genericstable, `hash -o /etc/mail/genericstable')
GENERICS_DOMAIN_FILE(`/etc/mail/genericsdomain')

Et creérons les fichiers référes. Commençons par /etc/mail/genericsdomain, parce que c'est le plus simple. Ce fichier indique quel domaine est consideré local et aidera le MTA à distinguer le courrier local et externe. Tapez:

/etc/mail# hostname > genericsdomain

Maintenant, nous devrons créer la table de conversion d'adresses. Editons le fichier /etc/mail/genericstable, et ajoutons les adresses de courrier de cette façon :

# utilisateur local    adresse d'internet
chantal               chantal@bretagne.net

Nous pouvons ajouter autant d'adresses que nous voulons. Il est très important de souligner que nous devrons convertir ce fichier en un base de données binaire chaque fois qu'il est modifier . Pour le faire ; tapez:

/etc/mail# makemap hash genericstable.db < genericstable

Après le demarrage du Sendmail tout devra fonctionner correctment et nous pourrons envoyer courrier, meme avec la commande mail!.

J'inclus içi le fichier de configuration complet que j'utilise dans ma machine pour que vous puissiez voir comme fonctione le tout. Il faut souligner que l'ordre des commandes est important dans la plupart des cas.

dnl
dnl fichier de configuration pour Sendmail
dnl
divert(0)
OSTYPE(bsd4.4)
DOMAIN(generic)
FEATURE(access_db, `hash -o /etc/mail/access')
FEATURE(local_lmtp)
define(`PROCMAIL_MAILER_PATH', `/usr/local/bin/procmail')
FEATURE(local_procmail)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
FEATURE(relay_based_on_MX)
FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')
FEATURE(masquerade_envelope)
FEATURE(genericstable, `hash -o /etc/mail/genericstable')
GENERICS_DOMAIN_FILE(`/etc/mail/genericsdomain')
define(`SMART_HOST', `smtp.menta.net')
define(`confCW_FILE', `-o /etc/mail/local-host-names')
define(`confMAX_MIME_HEADER_LENGTH', `256/128')
define(`confNO_RCPT_ACTION', `add-to-undisclosed')
define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy')
MAILER(local)
MAILER(smtp)

J'espère que l'article n'est pas trop complexe. Si tout fonctionne correctement, vous aurez un des MTAs plus puissant et complet à vos ordres ;)

Si vous trouvez des erreurs, n'hesitez pas à me contacter

freebsd/sendmail_simple.txt · Last modified: 2010/01/12 13:29 (external edit)