Sendmail est comme son nom l'indique un logiciel permettant d'envoyer des mails (pour des notificaitons par exemple) Dans cet exemple, je l'utillise en tant que relais smtp vers gmail.
La première chose est de l'installer
sudo apt update && apt upgrade && apt install sendmail libsasl2-dev libsasl2-2 libsasl2-modules
Le fichier de configuration est un fichier compilable /etc/mail/sendmail.mc Il faut également modifier le fichier /etc/hosts, on va y rajouter un nom de domaine pleinement qualifié. Votre fichier hosts ressemblera à ça :
127.0.0.1 localhost
127.0.1.1 localhost.localdomain localhost agprog
Ensuite on édite le fichier de configuration de sendmail après avoir fait une copie du fichier original
nano /etc/mail/sendmail.mcj'ai commenté les lignes qui ne m'interessait pas, pour commenter une ligne on utilise l'expression dnl #
dnl # FEATURE(`delay_checks', `friend', `n')dnlPuis je rajoute les lignes correspondant au relais host et à l'authentification demandée par gmail. Le serveur demande un chiffrement TLS sur le port 587.
dnl # FEATURE(`conncontrol', `nodelay', `terminate')dnl
dnl # FEATURE(`ratecontrol', `nodelay', `terminate')dnl
define(`SMART_HOST',`smtp.gmail.com')dnlIl me reste à créer dans la base de données de sendmail, l'utilisateur que je vais utiliser pour m'authentifier sur le smtp, je vais créer un fichier que j'appelerai authinfo.
define(`confAUTH_MECHANISMS',`EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
#Dans authinfo AuthInfo:smtp.gmail.com "U:session_user" "I: identifiant@gmail.com" "P: password" "M:PLAIN"Je compile le fichier authinfo pour l'injecter dans la base de données.
sudo makemap hash authinfo < authinfoJe rajoute les infos d'identification dans la configuration de sendmail /etc/mail/sendmail.mc
FEATURE(`authinfo',`hash /etc/mail/authinfo')dnlIl me reste à compiler le fichier de configuration
sudo sendmail.configOn démarre le service saslauth s'il n'est pas démarré.
sudo service saslauthd startIl ne reste plus qu'à tester en envoyer un message.
echo "message de test" | sendmail adresse_destinataire@fai.fai
Quelques options intéressantes
dnl # demander au serveur de relayer le local GENERICS_DOMAIN(localhost.localdomain localhost)dnl
dnl # masquer son adresse par l'adresse de free.fr MASQUERADE_AS(`fournisseur.fr')dnl
dnl # masquer le header mais aussi l'enveloppe FEATURE(masquerade_envelope)dnl
Vos idées sur l'article nous interesse