Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Commandes du fichier msmtprc

Commandes générales

defaults
Définir les valeurs par défaut.
Les commandes suivantes définiront les valeurs par défaut pour toutes les définitions de compte suivantes dans le fichier de configuration actuel.

; account name [: account[,…]]

Commence une nouvelle définition de compte avec le nom donné. Les valeurs par défaut en cours sont renseignées. Si deux-points et une liste de comptes précédemment définis sont donnés après le nom du compte, le nouveau compte, avec les valeurs par défaut renseignées, héritera de tous les paramètres des comptes de la liste.
host hostname
Le serveur SMTP auquel envoyer le courrier. L'argument peut être un nom d'hôte ou une adresse réseau. Chaque définition de compte doit contenir cette commande.
port number
Port d'écoute du serveur SMTP. La valeur par défaut est 25 (“smtp”), sauf si TLS est utilisé sans STARTTLS, auquel cas c'est 465 (“smtps”).
source_ip [IP]
Définit une adresse IP source à laquelle lier la connexion sortante. Utile seulement dans des cas particuliers, sur les systèmes multi-home. Un argument vide le désactive.
proxy_host [IP|hostname]
Utiliser un proxy SOCKS. Tout le trafic réseau passera par cet hôte proxy, y compris les requêtes DNS, à l'exception d'une requête DNS qui pourrait être nécessaire pour résoudre le nom d'hôte proxy lui-même (cela peut être évité en utilisant une adresse IP comme nom d'hôte proxy).Un argument vide désactive l'utilisation du proxy.
proxy_port [number]
Numéro de port pour l'hôte proxy. Un argument [number] vide le réinitialise au port par défaut, qui est 1080 (“socks”).
socket [socketname]
Nom de fichier d'un socket de domaine Unix auquel se connecter. Cela remplace à la fois 'host'/'port' et 'proxy_host'/'proxy_port'.
timeout (off|seconds)
Définit ou désactive un délai d'attente du réseau, en secondes. L'argument “off” signifie qu'aucun délai d'attente ne sera défini, ce qui signifie que la valeur par défaut du système d'exploitation sera utilisée.
protocol (smtp|lmtp)
Protocole à utiliser. Actuellement, seuls SMTP et LMTP sont pris en charge. SMTP est la valeur par défaut.
domain argument
Cette commande définit l'argument de la commande SMTP EHLO (ou LMTP LHLO). La valeur par défaut est 'localhost', ce qui est stupide mais fonctionne généralement. Essayez de modifier la valeur par défaut si les e-mails sont rejetés en raison de mesures anti-SPAM. Les choix possibles sont la partie domaine de votre adresse e-mail (provider.example pour joe@provider.example) ou le nom de domaine complet de votre hébergeur (si disponible). Les modèles de substitution suivants sont pris en charge :
  • %H sera remplacé par $HOSTNAME, ou en cas d'échec par le nom d'hôte du système.
  • %C sera remplacé par le nom canonique de %H.
  • %M sera remplacé par le contenu de /etc/mailname (potentiellement, un répertoire différent est utilisé en fonction de la configuration de construction ; consultez la sortie de « msmtp –version » et recherchez l'emplacement du fichier de configuration système).

Commandes d'authentification

auth [(on|off|method)]
Activation ou désaction de l'authentification et choix éventuel de la méthode à utiliser. L'argument on choisit automatiquement une méthode. Les méthodes acceptées sont plain, scram-sha-1, scram-sha-256, oauthbearer, xoauth2, cram-md5, gssapi, external, digest-md5, login et ntlm.
user [username]
Nom d'utilisateur pour l'authentification. Un argument vide annule le nom d'utilisateur. L'authentification doit être activée avec la commande auth.
password [secret]
Mot de passe pour l'authentification. Un argument vide annule le mot de passe. Envisagez d'utiliser la commande passwordeval ou un trousseau de clés à la place de cette commande, pour éviter de stocker des mots de passe en clair dans le fichier de configuration.
passwordeval [eval]
Définit le mot de passe pour l'authentification sur la sortie (stdout) de la commande eval.

Cela peut être utilisé par ex. pour déchiffrer des fichiers de mots de passe à la volée ou pour interroger des trousseaux de clés, et ainsi éviter de stocker des mots de passe en clair.

Notez que la commande eval ne doit pas interférer avec l'entrée standard (stdin) car c'est là que msmtp lit le courrier. En cas de doute, ajoutez < /dev/null à eval.

Commandes TLS

tls [(on|off)]
Active ou désactive TLS (également connu sous le nom de SSL) pour les connexions sécurisées.
tls_starttls [(on|off)]
Choisir la variante TLS : démarrer TLS depuis la session (“on”, par défaut) ou tunnelez la session via TLS (“off”).
tls_trust_file [file]
Active la vérification du certificat du serveur à l'aide d'une liste d'autorités de certification (CA) de confiance.

La valeur par défaut est la valeur spéciale system, qui sélectionne la valeur par défaut du système.

Un argument vide désactive la confiance dans les autorités de certification.

Si vous sélectionnez un fichier, il doit être au format PEM et vous devez également utiliser tls_crl_file.

tls_fingerprint [fingerprint]
Définit l'empreinte digitale d'un seul certificat à accepter pour TLS.

Ce certificat sera approuvé quel que soit son contenu (cela remplace tls_trust_file).

L'empreinte digitale doit être de type SHA256, mais peut également être de type SHA1 ou MD5 pour la rétrocompatibilité (à éviter).

Le format doit être 01:23:45:67:…. Utilisez '–serverinfo –tls –tls-certcheck=off –tls-fingerprint=' pour obtenir l'empreinte du certificat du serveur.

tls_key_file [file]
Envoyez un certificat client au serveur (utilisez-le avec « tls_cert_file »).

Le fichier doit contenir la clé privée d'un certificat au format PEM.

Un argument vide désactive cette fonctionnalité.

tls_cert_file [file]
Envoyer un certificat client au serveur (utilisez-le avec « tls_key_file »).

Le fichier doit contenir un certificat au format PEM.

Un argument vide désactive cette fonctionnalité.

tls_certcheck [(on|off)]
Active ou désactive les vérifications du certificat du serveur.

Ils sont activés par défaut.

Les désactiver remplacera ‘tls_trust_file’ et ‘tls_fingerprint’.

ATTENTION : Lorsque les vérifications sont désactivées, les sessions TLS ne seront pas sécurisées !

tls_priorities [priorities]
Définit des priorités pour les paramètres de session TLS.

La valeur par défaut est définie par la bibliothèque TLS et peut être sélectionnée en utilisant un argument vide pour cette commande.

L'interprétation de la chaîne de priorités dépend de la bibliothèque TLS.

Utilisez '–version' pour savoir quelle bibliothèque TLS vous utilisez.

Pour GnuTLS, consultez la section sur les chaînes prioritaires dans le manuel.

Pour libtls, la chaîne de priorités est une liste de chaînes de paramètres séparées par des espaces et préfixées avec PROTOCOLS=, CIPHERS= ou ECDHECURVES=.

Ces chaînes de paramètres seront transmises aux fonctions « tls_config_parse_protocols », « tls_config_set_ciphers » et « tls_config_set_ecdhecurves ».

Les parties non reconnues de la chaîne des priorités seront ignorées.

Exemple : PROTOCOLS=TLSv1.3 CIPHERS=ECDHE-RSA-AES128-SHA256 ECDHECURVES=P384.

tls_host_override [host]
Par défaut, la vérification de l'hôte TLS utilise le nom d'hôte donné par la commande “host”.

Cette commande permet d'utiliser un nom d'hôte différent pour la vérification.

Ceci n'est utile que dans des cas particuliers.

Commandes propres au mode sendmail

from [address]
Définir l'adresse d'expédition de l'enveloppe.

Les modèles de substitution suivants sont pris en charge :

  • %U sera remplacé par $USER, ou si cela échoue par $LOGNAME, ou si cela échoue par le nom de connexion de l'utilisateur qui exécute msmtp.
  • %H sera remplacé par $HOSTNAME, ou en cas d'échec par le nom d'hôte du système.
  • %C sera remplacé par le nom canonique de %H.
  • %M sera remplacé par le contenu de /etc/mailname (potentiellement, un répertoire différent est utilisé en fonction de la configuration de construction ; voir la sortie de 'msmtp –version' et rechercher l'emplacement du fichier de configuration système).

L'adresse d'expéditeur de l'enveloppe peut être un modèle de caractère générique tel qu'utilisé pour la correspondance des noms de fichiers dans le shell.

C'est le cas s'il contient l'un des caractères ?, * ou [.

Cela permet à une variété d'adresses d'envoi d'enveloppe données avec l'option '–from' de correspondre à un seul compte.

allow_from_override (on|off)
Par défaut, l'option [–from] remplace la commande [from].

Réglez sur “off” pour désactiver cela.

dsn_notify (off|condition)
Définissez la ou les conditions dans lesquelles le système de messagerie doit envoyer des messages DSN (Delivery Status Notification).

L'argument “off” désactive les demandes DSN explicites, ce qui signifie que le système de messagerie décide quand envoyer des messages DSN. C'est la valeur par défaut.

La condition doit être “never”, pour ne jamais demander de notification, ou une liste séparée par des virgules (sans espace !) d'un ou plusieurs des éléments suivants : “failure”, pour demander une notification en cas d'échec de transmission, “delay”, pour être informé de retards de message, 'success', pour être informé de la réussite de la transmission.

Le serveur SMTP doit prendre en charge l'extension DSN.

dsn_return (off|amount)
Cette commande contrôle la quantité d'un courrier qui doit être renvoyée dans les messages DSN (Delivery Status Notification).

L'argument “off” désactive les requêtes DSN explicites, ce qui signifie que le système de messagerie décide de la quantité d'un courrier qu'il renvoie dans les messages DSN. C'est la valeur par défaut.

amount doit être “headers”, pour renvoyer uniquement les en-têtes de message, ou “full”, pour renvoyer l'intégralité du courrier.

Le serveur SMTP doit prendre en charge l'extension DSN.

set_from_header [(auto|on|off)]
Quand définir un en-tête From : 'auto' ajoute un en-tête From si le courrier n'en a pas (c'est la valeur par défaut), 'on\' définit toujours un en-tête From et remplace tout existant, et 'off' ne définit jamais un en-tête From.

Si le serveur de messagerie rejette le courrier parce que son en-tête From ne correspond pas à l'adresse de l'enveloppe (une mesure anti-spam courante), vous pouvez définir cette option sur “on”.

L'en-tête From est créé en fonction de l'adresse d'envoi de l'enveloppe.

Désactivez [allow from override] pour empêcher les programmes de définir leur propre adresse d'envoi d'enveloppe.

set_date_header [(auto|off)]
Quand définir un en-tête de date : “auto” ajoute un en-tête de date si le courrier n'en a pas (c'est la valeur par défaut), et “off” ne définit jamais d'en-tête de date.
remove_bcc_headers [(on|off)]
Cette commande contrôle s'il faut supprimer les en-têtes Cci. La valeur par défaut est de les supprimer.
undisclosed_recipients [(on|off)]
Lorsqu'ils sont définis, les en-têtes d'origine À, Cc et Cci du courrier sont supprimés et une nouvelle ligne d'en-tête unique “À : destinataires non divulgués : ;” est ajouté. Le paramètre par défaut est désactivé.
logfile [file]
Activer la journalisation dans le fichier spécifié. Un argument vide désactive la journalisation. Le nom de fichier « - » dirige les informations du journal vers la sortie standard.
logfile_time_format [fmt]
Définit ou annule le format d'heure du fichier journal. Il sera utilisée comme chaîne de format pour la fonction strftime(). Un argument vide choisit la valeur par défaut ('“%b %d %H:%M:%S”').
syslog [(on|off|facility)]
Activer ou désactiver la journalisation Syslog.

facility peut être l'une des suivantes : ‘LOG_USER’, ‘LOG_MAIL’, ‘LOG_LOCAL0’, . . . , ‘LOG_LOCAL7’.

La valeur par défaut est ‘LOG_USER’.

La journalisation Syslog est désactivée par défaut.

aliases [file]
Remplacer les destinataires locaux par des adresses dans le fichier d'alias.

Le fichier d'alias est un fichier texte en clair contenant des correspondances entre une adresse locale et une liste d'adresses de remplacement.

Les correspondances sont de la forme :

 local: someone@example.com, person@domain.example

Les adresses de remplacement multiples sont séparées par des virgules.

Les commentaires commencent par '#' et continuent jusqu'à la fin de la ligne.

L'adresse locale “default” a une signification particulière et est mise en correspondance si l'adresse locale n'est pas trouvée dans le fichier d'alias.

Si aucun alias “default” n'est trouvé, l'adresse locale est laissée telle quelle.

Un argument vide à la commande alias désactive le remplacement des adresses locales. C'est la valeur par défaut.

Voir aussi