SDB:Sendmail : envoyer des messages électroniques (SMTP)

Un article de openSUSE.


Version: 8.0

Situation :

Comment peut-on acheminer des courriers électroniques vers le serveur de message du fournisseur d'accès Internet à l'aide de sendmail et du protocole SMTP ?

Cet article décrit la configuration au moyen des variables sysconfig et sans utiliser YaST.

Procédure :

Remarques préliminaires :

  • Cette proposition de solution a été pensé avant tout chose pour les connexions par ligne téléphonique (dial up), que ce soit par l'intermédiaire d'un modem ou par RNIS ; une conversion des adresse électroniques peut donc être nécessaire.
  • Cette solution permet d'éviter des connexions inutiles en plaçant, tout d'abord, tous les courriers électroniques dans une file d'attente (queue) puis en les acheminant tous en même temps.
  • Dans cet article, on décrit uniquement la procédure pour envoyer des courriers électroniques.

Configuration :

La configuration s'effectue dans le répertoire /etc/mail et dans le fichier /etc/sendmail.cf.
Cette configuration est générée à partir des variables contenues dans /etc/sysconfig/mail et /etc/sysconfig/sendmail.

Paramètres dans /etc/sysconfig/mail :

  • FROM_HEADER="provider.de"
    masque tous les courriers électroniques sortants avec @provider.de et devrait, dans le doute, être défini avec le nom complet de l'ordinateur.
  • MAIL_CREATE_CONFIG="yes"
  • NULLCLIENT=""
    limite sendmail à l'envoi de messages lorsque la valeur "yes" est attribuée . Généralement cela n'est pas souhaitable car avec ce paramètre, même les courriers électroniques locaux ne sont pas acheminés.
  • SMTPD_LISTEN_REMOTE="no"
    avec cette option, aucune connexion SMTP à partir d'autres ordinateurs ne sera acceptée. Si vous utilisez un réseau interne et acheminez des messages électroniques d'autres clients, vous devez ici attribuer la valeur "yes".

Paramètres dans /etc/sysconfig/sendmail :

  • SENDMAIL_SMARTHOST="mail.provider.de"
    ici, il s'agit du serveur de messages de votre fournisseur d'accès Internet.

  • SENDMAIL_LOCALHOST="localhost nom.de.votre.ordinateur"
    les messages à destination de ce domaine seront acheminés localement (d'autre noms de domaine peuvent être définis dans le fichier /etc/mail/local-host-names).

  • SENDMAIL_RELAY=""
    cette entrée reste généralement vide, sinon les courriers électroniques locaux seraient également acheminés vers cet ordinateur.

  • SENDMAIL_LUSER=""
    les courriers électroniques qui sont adressés à des utilisateurs locaux ou des alias qui n'existent pas, seront acheminés vers cet utilisateur. Ce paramètre est relevant pour l'acheminement local des messages électroniques que nous ne traiteront pas davantage dans cet article.

  • SENDMAIL_ARGS="-L sendmail -Am -bd -om"
    les courriers électroniques ne seront expédiés que lorsque vous exécuterez la commande sendmail -q.

  • SENDMAIL_CLIENT_ARGS="-L sendmail-client -Ac -q30m"
    cette ligne doit être conservée sous cette forme. Elle est nécessaire au système afin que celui-ci ne laisse pas des messages en cours de route.

  • SENDMAIL_EXPENSIVE="yes"
    la valeur "yes" doit être attribuée à ce paramètre dans le cas d'une connexion par ligne téléphonique.

  • SENDMAIL_NOCANONIFY="yes"
    ceci empêche les requêtes DNS (lookups) si toutefois le serveur de messages de votre fournisseur d'accès Internet est listé dans /etc/hosts.

  • NODNS="no"
    attribuer la valeur "yes" à ce paramètre uniquement lorsque l'option précédente NOCANONIFY ne suffit pas à empêcher des requêtes DNS (lookups) qui initialisent une connexion.

  • DIALUP="no"
    ce paramètre peut être utilisé si plus rien d'autre ne fonctionne ; cela garantit absolument qu'aucune connexion ne sera établie étant donné que tous les courriers électroniques, même ceux adressés à des destinataires locaux, ne seront envoyés qu'au moyen de sendmail -q.

  • SENDMAIL_GENERICS_DOMAIN="nom.de.votre.ordinateur"
    les courriers électroniques avec cette partie domaine peuvent, en outre, être modifiés par le tableau genericstable.
    Lorsque, par exemple, vous utilisez PINE et le tableau genericstable, il est impératif d'insérer ici votre nom d'hôte local afin que la conversion des adresses fonctionne correctement (si le nom complet de l'hôte (FQDN) n'est pas déjà défini au niveau de l'en-tête FROM_HEADER).

  • MASQUERADE_DOMAINS="mydomain1 mydomain2"
    normalement, tous les domaines locaux (SENDMAIL_LOCALHOST) sont masqués avec l'en-tête FROM_HEADER.
    Cependant, lorsque une valeur, quelle qu'elle soit, est attribuée à cette variable, uniquement ces domaines seront remplacés.

  • SMTP_AUTH_MECHANISMS=""
    si votre fournisseur d'accès Internet supporte SMTP AUTH, vous pouvez saisir ici PLAIN. Veuillez cependant noter que la plupart des fournisseurs d'accès Internet ne supportent que PLAIN bien qu'avec cette option les données de l'utilisateur sont transmises en clair. Vous devez, en outre, modifier le fichier /etc/mail/auth/auth-info.

  • SMTP_AUTH_SERVER=""
    ceci n'est utilisé que pour les serveurs de messages.

  • STARTTLS=""
    avec cette option, le protocole de chiffrement TLS est activé et/ou l'utilisation d'un certificat client est mise en place.

Lorsque vous avez la même adresse au sein de votre système local qu'auprès de votre fournisseur d'accès Internet, la configuration est maintenant achevée.
De cette façon, vous pouvez, au moyen de la commande sendmail -q, acheminer vos courriers électroniques vers votre fournisseur d'accès Internet une fois que vous avez exécuté SuSEconfig et redémarré sendmail.
rcsendmail reload

/etc/mail/genericstable:

Si vous avez des noms d'utilisateur différents, il vous faut encore adapter le fichier /etc/mail/genericstable.
Celui-ci est chargé de modifier les adresses électroniques lors de l'envoi des courriers électroniques.

L'entrée doit être de la forme suivante :

nom_d_utilisateur_local         adresse_électronique@fournisseur.com

Ce fichier une fois modifié, SuSEconfig doit être exécuté ou bien la commande suivante :
makemap hash /etc/mail/genericstable.db < /etc/mail/genericstable

S'il est vrai que certaines applications de messagerie électronique, comme par exemple pine peuvent atteindre la fonctionnalité de genericstable, il n'en demeure pas moins que genericstable présente l'avantage d'offrir une configuration indépendante de la messagerie électronique utilisée.

Remarques :

les messages électroniques seront envoyés automatiquement lors de chaque connexion au moyen du script : /etc/ppp/poll.tcpip