Fichier sendmail.cf et submit.cf
Objectif
Contient les informations de configuration de la commande Sendmail .
Descriptif
Le fichier de configuration /etc/mail/sendmail.cf et le fichier de configuration /etc/mail/submit.cf contiennent les informations de configuration de la commande sendmail command.These incluent des informations telles que le nom d'hôte et le domaine, ainsi que les jeux de règles sendmail .
Les fichiers de configuration remplissent les fonctions suivantes:
- Stockez des informations sur le type de programmes de courrier en cours d'exécution.
- Définissez la manière dont la commande Sendmail réécrit les adresses dans les messages.
- Définissez le mode de fonctionnement de la commande Sendmail dans les environnements suivants:
- Livadresse postale locale
- Prestation de réseau local à l'aide de TCP/IP
- Livapplication à distance à l'aide de Basic Utilities Network (BNU)
Si votre environnement inclut uniquement ces types de distribution du courrier, vous pouvez utiliser le fichier /etc/mail/sendmail.cf ou le fichier /etc/mail/sendmail.cf fourni avec peu de modifications, le cas échéant.
Lignes de contrôle
Les fichiers de configuration sont constitués d'une série de lignes de contrôle, dont chacune commence par un caractère unique définissant le mode d'utilisation du reste de la ligne. Les lignes commençant par un espace ou un onglet sont des lignes de continuation. Les lignes vides et les lignes commençant par un # (signe dièse) sont des commentaires. Les lignes de contrôle sont utilisées pour définir:
- Macros et classes à utiliser dans le fichier de configuration
- Entitres de message
- Programmes de distribution de messages
- Options de la commande Sendmail
Chacun de ces types de lignes de contrôle est discuté en détail ci-dessous.
Réécrire les règles
La commande Sendmail reçoit des adresses dans un certain nombre de formats différents car différents expéditeurs utilisent des formats différents pour distribuer des messages électroniques. La commande Sendmail modifie les adresses au format requis pour acheminer le message pour le programme mailer utilisé. Pour effectuer cette conversion, la commande Sendmail utilise un ensemble de règles de réécriture, ou Jeux de règles, qui sont définies dans les fichiers de configuration. Les règles de réécriture ont le format suivant:
Snumber
Rbefore after
oùnumberEst un entier supérieur ou égal à zéro indiquant quelle règle est définie, etbeforeetafterSont des expressions symboliques représentant un modèle particulier de caractères. La ligne commençant parRSignifie réécrire l'expressionbeforePour qu'il ait le même format que l'expressionafter. Sendmail analyse via l'ensemble de règles de réécriture à la recherche d'une correspondance sur le côté gauche (LHS) de la règle. Lorsqu'une règle correspond, l'adresse est remplacée par le côté droit (RHS) de la règle.
Les fichiers /etc/mail/sendmail.cf et /etc/mail/submit.cf installés avec la commande sendmail contiennent suffisamment de règles pour effectuer la conversion des réseaux BNU et TCP/IP à l'aide d'une structure d'adresse de domaine. Vous ne devez pas avoir à modifier ces règles sauf si vous vous connectez à un système qui utilise un schéma d'adressait différent.
Les extensions de macro du formulaire $x sont effectuées lorsque le fichier de configuration est lu. Les extensions du formulaire $ & x sont exécutées lors de l'exécution, à l'aide d'un algorithme un peu moins général. Ce formulaire est destiné uniquement à référencer des macros définies en interne telles que $h qui sont modifiées lors de l'exécution.
Côté gauche (LHS) des règles de réécriture
Le côté gauche des règles de réécriture contient un modèle. Les mots normaux sont simplement appariées directement. La métasyntaxe est introduite à l'aide d'un signe dollar. Les métasymboles sont les suivants:
| Symbole | Signification |
|---|---|
| $* | Correspondance avec zéro ou plusieurs jetons |
| $+ | Correspondance avec un ou plusieurs jetons |
| $- | Correspondance exacte d'un jeton |
| $=X | Correspondance avec une expression de la classe X |
| $~X | Correspondance avec un mot non dans la classe X |
S'il existe une de ces correspondances, elles sont affectées au symbole $N pour le remplacement sur le côté droit, où N est l'index dans le LHS. Par exemple, si le LHS:
$-:$+
Est appliqué à l'entrée:
UCBARPA:linda
La règle sera mise en correspondance, et les valeurs transmises au RHS seront les suivantes:
$1 UCBARPA
$2 linda
RHS (Right-Hand Side) des règles de réécriture
Lorsque le côté gauche d'une règle de réécriture correspond, l'entrée est supprimée et remplacée par le côté droit. Les jetons sont copiés directement à partir du RHS, sauf s'ils commencent par un signe dollar. Les métasymboles sont:
| Symbole | Signification |
|---|---|
| $n | Remplacez le jeton indéfini N par LHS |
| Nom $[$] | Canonicalize nom |
| $( map key$@arguments $: default $) | Fonction de mappage à clé généralisée |
| $>n | "Appel" ensemble de règles N |
| $#mailer | Résoudre sur mailer |
| Hôte $@ | Spécifier l'hôte |
| Utilisateur $: | Indiquer un utilisateur |
La syntaxe $n remplace la valeur correspondante à partir d'une correspondance $+, $-, $*, $=ou $~ sur le LHS. Elle peut être utilisée n'importe où.
Un nom d'hôte entre $ [ et $ ] est recherché dans la ou les bases de données hôte et remplacé par le nom canonique. Par exemple, $[merlin] peut devenir merlin.magician et $[[128.32.130.2]$] devient king.arthur.
La syntaxe $( ... $) est une forme plus générale de recherche ; elle utilise une mappe nommée au lieu d'une mappe implicite. Si aucune recherche n'est trouvée, la valeur par défaut indiquée est insérée ; si aucune valeur par défaut n'est spécifiée et qu'aucune correspondance de recherche n'est trouvée, la valeur reste inchangée. Les arguments sont transmis à la mappe pour une utilisation éventuelle.
La syntaxe $> n entraîne la substitution du reste de la ligne comme d'habitude, puis transmise en tant qu'argument à l'ensemble de règles n. La valeur finale de l'ensemble de règles n devient alors la substitution de cette règle. La syntaxe $> ne peut être utilisée qu'au début du côté droit ; elle ne peut être précédée que de $ @ ou $:.
La syntaxe $# doit être utilisée uniquement dans le jeu de règles zéro ou dans une sous-routine de l'ensemble de règles zéro. Elle entraîne l'arrêt immédiat de l'ensemble de règles et signale à Sendmail que l'adresse a complètement été résolue. La syntaxe complète est la suivante:
$#mailer $@host $:user
Indique le {mailer, host, user} 3-tuple nécessaire pour diriger le mailer. Si le mailer est local, la partie hôte peut être omise. Le mailer doit être un mot unique, mais l'hôte et l'utilisateur peuvent être multi-parties. Si le mailer est le mailer intégré de la CIB, l'hôte peut être une liste d'hôtes séparés par deux-points qui sont recherchés pour la première adresse de travail, exactement comme les enregistrements MX (échange de machines). L'utilisateur est ensuite réécrit par l'ensemble de réécriture de l'enveloppe spécifique au mailer et affecté à la macro $u. En tant que cas particulier, si la valeur en $# est "local" et le premier caractère de la valeur $: la valeur est "@", le "@" est supprimé et un indicateur est défini dans le descripteur d'adresse qui fait que Sendmail ne fait pas le traitement de l'ensemble de règles 5.
Normalement, une règle qui correspond à est rejugée, c'est-à-dire, les boucles de règles jusqu'à ce qu'elle échoue. Un RHS peut également être précédé d'un $ @ ou d'un $: pour changer ce comportement. Un préfixe $ @ entraîne le retour de l'ensemble de règles avec le reste du RHS comme valeur. Un préfixe $: le préfixe entraîne l'arrêt immédiat de la règle, mais l'ensemble de règles à poursuivre ; cela peut être utilisé pour éviter l'application continue d'une règle. Le préfixe est supprimé avant de continuer.
R$+ $: $>7 $1Correspond à tout, passe celui à l'ensemble de règles 7 et continue ; le $: est nécessaire pour éviter une boucle infinie.
La substitution se produit dans l'ordre indiqué ; c'est-à-dire que les paramètres du LHS sont remplacés, que les noms d'hôte sont canicalisés, que les sous-programmes sont appelés, et enfin $#, $ @ et $: sont traités.
Sémantique des jeux de règles de réécriture
Il existe cinq ensembles de réécriture ayant une sémantique spécifique.
local-part@host-domain-specLe jeu de règles 3 est appliqué par Sendmail avant de faire quoi que ce soit avec une adresse quelconque.
Si aucun signe "@" n'est spécifié, alors le domaine-hôte-spec peut être ajouté (case "D" dans "Rewrite Set Semantics") à partir de l'adresse de l'expéditeur (si l'indicateur C est défini dans la définition de mailer correspondant à l'expéditeur de mailer).
Le jeu de règles zéro est appliqué après l'ensemble de règles trois à des adresses qui vont effectivement spécifier des destinataires. Il doit être résolu en un triple {mailer, host, user} . Le mailer doit être défini dans les définitions de courrier du fichier de configuration. L'hôte est défini dans la macro $h pour être utilisé dans l'extension argv du mailer spécifié.
Mailers IPC
Un traitement spécial se produit si le zéro de l'ensemble de règles est résolu en un mailer IPC (c'est-à-dire un mailer qui a "[ IPC ]" répertorié comme chemin dans la ligne de configuration M. Le nom d'hôte transmis après "$ @" a été étendu à MX ; il s'appelle le nom dans le DNS pour trouver d'autres sites de distribution.
Le nom d'hôte peut également être fourni sous forme de quad en pointillés entre crochets ; par exemple:
[128.32.149.78]
Cela entraîne la conversion directe de la valeur numérique en adresse hôte TCP/IP.
Le nom d'hôte transmis après "$ @" peut également être une liste d'hôtes séparés par deux-points. Chaque MX est développé séparément et les résultats sont concaténés pour faire (essentiellement) une longue liste MX. L'objectif est de créer des "faux" enregistrements MX qui ne sont pas publiés dans le DNS pour les réseaux internes privés.
[any.internet.addr]Macros du fichier sendmail.cf et du fichier submit.cf
Les macros du fichier /etc/mail/sendmail.cf et du fichier /etc/mail/submit.cf sont interprétées par la commande sendmail . Une macro est un symbole représentant une valeur ou une chaîne. Une macro est définie par unDdans le fichier /etc/mail/sendmail.cf et dans le fichier /etc/mail/submit.cf .
D-Définition d'une macro
Les macros sont nommées avec un seul caractère ou un mot dans {braces}. Les noms de caractères simples peuvent être sélectionnés à partir de l'ensemble de l'ensemble ASCII, mais les macros définies par l'utilisateur ne doivent être sélectionnées qu'à partir de l'ensemble des lettres majuscules. Les lettres minuscules et les symboles spéciaux sont utilisés en interne. Les noms longs commençant par une lettre minuscule ou un caractère de ponctuation sont réservés à l'utilisation par Sendmail, de sorte que les noms de macro définis par l'utilisateur doivent commencer par une lettre majusculée.
DxvaloùxEst le nom de la macro (qui peut être un caractère unique ou un mot dans les accolades) etvalEst la valeur qu'il devrait avoir. Aucun espace ne doit être indiqué dans la valeur de la macro.
Les macros sont interpolées à l'aide de la construction $x, où x est le nom de la macro à interpoler. Cette interpolation est effectuée lorsque le fichier de configuration est lu, sauf dans les lignes M. La construction spéciale $ & x peut être utilisée dans les lignes R pour obtenir une interpolation différée.
$?x text1 $| text2 $.Cette option permet d'interpoler text1 si la macro $x est définie, et text2 dans le cas contraire. La clause "else" ($ |) peut être omise.
Les noms de macro en minuscules sont réservés à la sémantique spéciale, utilisés pour transmettre des informations dans ou à partir de Sendmail, et les caractères spéciaux sont réservés pour fournir des conditions, etc. Les noms Uppercase (c'est-à-dire, $A à $Z) sont spécifiquement réservés aux auteurs du fichier de configuration.
Les macros suivantes sont définies et / ou utilisées en interne par Sendmail pour l'interpolation dans l'argv pour les expéditeurs ou pour d'autres contextes. Les éléments marqués - sont des informations transmises dans Sendmail, celles marquées = sont des informations transmises à l'intérieur et à l'extérieur de Sendmail, et les macros non marquées sont transmises à partir de Sendmail , mais ne sont pas utilisées à l'interne:
| Macro | Définition |
|---|---|
| $_ | RFC1413-validation et route source IP (V8.1 et ci-dessus). |
| $a | Date d'origine au format RFC822 . |
| ${auth_authen} | Les données d'identification de l'authentification du client déterminées par l'authentification (uniquement si l'authentification aboutit). Le format dépend du mécanisme utilisé. Il peut s'agir uniquement de userou de user@realm, ou de quelque chose de similaire (SMTP AUTH uniquement). |
| ${auth_author} | L'identité d'autorisation, c'est-à-dire le paramètre AUTH=de la commande SMTP MAIL si elle est fournie. |
| ${alg_bits} | Longueur de clé maximale (en bits) de l'algorithme de chiffrement symétrique utilisé pour une connexion TLS. Cela peut être inférieur à la longueur de clé effective, stockée dans ${cipher_bits}, pour les algorithmes contrôlés à l'exportation. |
| ${addr_type} | Type de l'adresse actuellement réécrite. Cette macro contient jusqu'à trois caractères, la première étant E ou H pour l'adresse de l'enveloppe / de l'en-tête, le second est un espace, et le troisième est S ou R pour l'adresse de l'expéditeur ou du destinataire. |
| ${auth_type} | Mécanisme utilisé pour l'authentification SMTP (uniquement si réussi). |
| $b | Date en cours au format RFC822 . |
| $ (bodytype) | Le paramètre CORPS ESMTP . |
| $B | Le relais BITNET. |
| $c | Le nombre de sauts. |
| $ (add_client) | Adresse IP de l'hôte de connexion. |
| ${cert_issuer} | Nom distinctif (nom distinctif) de l'autorité de certification (autorité de certification) qui a signé le certificat présenté (émetteur cert) (STARTTLS uniquement). |
| ${cert_md5} | Le hachage MD5 du certificat présenté (STARTTLS uniquement). |
| $ (nom_client) | Nom canonique de l'hôte de connexion. |
| $ (port_client) | Nom de port de l'hôte de connexion. |
| $ (règle_client) | Contient le résultat de l'appel de résolution pour $ (nom_client). |
| ${cert_subject} | Nom distinctif du certificat présenté (appelé sujet cert) (STARTTLS uniquement). |
| $(currHeader) | Valeur d'en-tête comme chaîne entre guillemets. |
| ${cipher} | Suite de chiffrement utilisée pour la connexion, par exemple, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DESCBC-SHA, DES-CBC-MD5et DES-CBC3-SHA (STARTTLS uniquement). |
| ${cipher_bits} | Longueur de clé effective (en bits) de l'algorithme de chiffrement symétrique utilisé pour une connexion TLS. |
| ${client_connections} | Nombre de connexions ouvertes sur le serveur SMTP pour l'adresse IP du client. |
| ${client_flags} | Les drapeaux spécifiés par la partie Modifier= de ClientPortOptions où les drapeaux sont séparés les uns des autres par des espaces et où les drapeaux en majuscules sont doublés. En d'autres termes, Modifier=hA est représenté par h AA dans{client_flags}, ce qui est nécessaire pour tester les drapeaux dans les jeux de règles. |
| ${client_ptr} | Résultat de la recherche PTR pour l'adresse IP du client. Remarque: Il s'agit de ${client_name} si et uniquement si ${client_resolve} est OK. Cette option est définie uniquement dans le serveur SMTP.
|
| ${client_rate} | Nombre de connexions entrantes pour l'adresse IP du client pendant l'intervalle de temps spécifié par ConnectionRateWindowSize. |
| ${client_resolve} | Contient le résultat de l'appel de résolution pour ${client_name}. Les valeurs possibles sont les suivantes :
|
| ${cn_issuer} | Le CN (nom usuel) de l'AC qui a signé le certificat présenté (STARTTLS seulement). Remarque: Si le CN ne peut pas être extrait correctement, il est remplacé par l'une de ces chaînes en fonction de l'erreur détectée:
Dans le dernier cas, une autre erreur (non spécifique) s'est produite. |
| ${cn_subject} | Le CN (nom usuel) du certificat présenté (STARTTLS seulement). Voir ${cn_issuer} pour les remplacements possibles. |
| ${currHeader} | Valeur d'en-tête comme chaîne entre guillemets (éventuellement tronquée à MAXNAME). Cette macro n'est disponible que dans les ensembles de règles de vérification d'en-tête. |
| $C | Nom d'hôte du relais DECnet (techniquem4 ). |
| enrealThe date en cours au format UNIX (ctime) (3). | |
| $ (daemon_addr) | Adresse IP sur laquelle le démon écoute les connexions. A moins que DaemonPortOptions ne soit défini, il s'agira de '0.0.0.0. |
| $ (daemon_family) | Si le démon accepte les connexions réseau, il s'agit de la famille de réseau. |
| $ (indicateurs de données) | Les drapeaux du démon tels que spécifiés par la partie Modifiers= de DaemonPortOptions où les drapeaux sont séparés les uns des autres par des espaces et où les drapeaux en majuscules sont doublés. |
| $ (info_données) | Informations sur un démon en tant que chaîne de texte. Par exemple, SMTP+queueing@00. |
| $ (nom_démon) | Le nom du démon de la sous-option DaemonPortOptions Name=. Si cette sous-option n'est pas utilisée, la valeur par défaut est définie sur le démon#, où # correspond au numéro du démon. |
| $ (daemon_port) | Port sur lequel le démon accepte les connexions. A moins que DaemonPortOptions ne soit défini, il sera probablement défini sur la valeur par défaut 25. |
| $(deliveryMode) | Mode de distribution en cours utilisé par Sendmail. |
| $e | Obsolète. Utilisation de l'option SmtpGreetingMessage à la place. |
| $ (envid) | ID de l'enveloppe DSN d'origine. |
| $E | Relais X400 (non utilisé) (techniquem4 ). |
| $f | Adresse de l'expéditeur. |
| $F | Relais FAX (techniquem4 ). |
| $g | Adresse de l'expéditeur relative au destinataire. |
| $h | Partie hôte de l'adresse du destinataire. |
| ${hdrlen} | Longueur de la valeur d'en-tête stockée dans ${currHeader} (avant la troncature possible). Si cette valeur est supérieure ou égale à MAXNAME, l'en-tête a été tronqué. |
| ${hdr_name} | Nom de la zone d'en-tête pour laquelle l'ensemble de règles d'en-tête en cours a été appelé. Ceci est utile pour un jeu de règles de vérification d'en-tête par défaut pour obtenir le nom de l'en-tête ; la macro n'est disponible que dans les ensembles de règles de vérification d'en-tête. |
| $H | Le concentrateur de messagerie (techniquem4 ). |
| $ (hdrlen) | Longueur de la valeur d'en-tête, qui est stockée dans $ (currHeader). |
| $ (nom_hd) | Nom de la zone d'en-tête pour laquelle l'ensemble de règles d'en-tête en cours a été appelé. |
| $i | Identificateur de la file d'attente. |
| $ (if_addr) | Adresse IP d'une interface de connexion entrante, à moins qu'elle ne se trouve dans le réseau de bouclage. |
| ${if_addr_out} | Adresse IP de l'interface d'une connexion sortante, sauf si elle se trouve dans le réseau de bouclage. Les adresses IPv6 sont balisées avec IPv6: avant l'adresse. |
| ${if_family} | Famille IP de l'interface d'une connexion entrante, à moins qu'elle ne se trouve dans le réseau de bouclage. |
| ${if_family_out} | La famille IP de l'interface d'une connexion sortante, sauf si elle se trouve dans le réseau de bouclage. |
| $ (if_name) | Nom d'une interface de connexion entrante. |
| ${if_name_out} | Nom de l'interface d'une connexion sortante. |
| $j= | Nom canonique officiel. |
| $ k | Nom du noeud UUCP (V8.1 et ci-dessus). |
| ${load_avg} | Moyenne de la charge actuelle. |
| ${msg_id} | Valeur de l'en-tête Message-Id:. |
| ${msg_size} | La valeur du paramètre SIZE=, c'est-à-dire la taille du message (dans un dialogue ESMTP), avant que le message n'ait été collectant, par la suite la taille du message telle que calculée par la commande Sendmail . |
| ${nbadrcpts} | Nombre de destinataires incorrects pour un seul message. |
| ${nrcpts} | Nombre de destinataires validés pour un message unique. Remarque: Etant donné que la validation du destinataire se produit après que Check_rcpt a été appelé, la valeur de ce jeu de règles est une valeur inférieure à ce qui peut être attendu.
|
| ${time} | La sortie de la fonction time (3), c'est-à-dire le nombre de secondes écoulées depuis 0 heure, 0 minutes, 0 secondes, janvier 1, 1970, temps universel coordonné (UTC). |
| ${tls_version} | La version TLS/SSL utilisée pour la connexion, par exemple, TLSv1, SSLv3et SSLv2; définie après STARTTLS a été utilisée. |
| ${total_rate} | Le nombre total de connexions entrantes pendant l'intervalle de temps spécifié par Connection-RateWindowSize. |
| ${verify} | Résultat de la vérification du certificat présenté, défini uniquement après que STARTTLS a été utilisé (ou tenté). Les valeurs possibles sont les suivantes :
|
| Macro | Définition |
|---|---|
| $l | Obsolète. Utilisez plutôt l'option UnixFromLine. |
| $L | Relais utilisateur local (techniquem4 ). |
| $m | Nom de domaine DNS (V8.1 et ci-dessus). |
| $M | Qui nous masquerions en tant que (techniquem4 ). |
| $ (mail_addr) | Partie d'adresse du triple de l'adresse indiquée pour la commande COURRIER SMTP . |
| $ (hôte_courrier) | Hôte à partir du triple résolu de l'adresse indiquée pour la commande COURRIER SMTP . |
| $ (mail_mailer) | Le mailer du triple de l'adresse indiquée pour la commande COURRIER SMTP . |
| $n | L'expéditeur du message d'erreur. |
| $ (tentatives) | Nombre de tentatives de livraison. |
| $o | Obsolète. Utilisez l'option OperatorChars à la place. |
| $opMode | Le mode d'exploitation de démarrage (V8.7 et ci-dessus). |
| $p | ID du processus Sendmail . |
| $q- | Forme par défaut de l'adresse de l'expéditeur. |
| $ (queue_interval) | Intervalle d'exécution de la file d'attente tel que défini dans l'indicateur -q . |
| $r | Protocole utilisé. |
| $R | Le relais pour les noms non qualifiés (techniquem4 ). |
| $ (rcpt_addr) | Partie d'adresse du triple de l'adresse indiquée pour la commande SMTP RCPT . |
| $ (rcpt_host) | Hôte à partir du triple résolu de l'adresse indiquée pour la commande SMTP RCPT . |
| $ (rcpt_mailer) | Le mailer du triple de l'adresse indiquée pour la commande SMTP RCPT . |
| Nom d'hôte de l'expéditeur. | |
| L'hôte intelligent (techniquem4 ). | |
| $ (adresse_serveur) | Adresse du serveur de la connexion SMTP sortante en cours. |
| $ (nom_serveur) | Nom du serveur de la connexion SMTP sortante en cours. |
| $t | Temps en cours, en secondes. |
| $u | Nom d'utilisateur du destinataire. |
| $U | Nom UUCP pour remplacer $k. |
| $v | Version du programme Sendmail . |
| $V | Le relais UUCP (pour la classe $ = V) (techniquem4 ). |
| $w | Nom abrégé de cet hôte. |
| $W | Le relais UUCP (pour la classe $ = W) (techniquem4 ). |
| $x | Nom complet de l'expéditeur. |
| $X | Le relais UUCP (pour la classe $ = X) (techniquem4 ). |
| $y | Répertoire de base du destinataire. |
| $z | Nom de l'ATS de contrôle. |
| $Y | Le relais UUCP pour les hôtes non classifiés. |
| $z | Répertoire de base du destinataire. |
| $Z | Version de cette configuration m4 (techniquem4 ). |
Il existe trois types de dates qui peuvent être utilisées. Les macros $a et $b sont au format RFC 822 ; $a est l'heure d'extraction à partir de la ligne "Date:" du message (s'il y en a une), et $b la date et l'heure actuelles (utilisées pour les postmarques). Si aucune ligne "Date:" n'est trouvée dans le message entrant, $a est également défini sur l'heure en cours. La macro est équivalente à la macro $b au format UNIX (ctime). La macro $t est l'heure en cours en secondes.
Les macros $w, $jet $m sont définies sur l'identité de cet hôte. Sendmail tente de trouver le nom qualifié complet de l'hôte si possible ; il le fait en appelant gethostname (2) pour obtenir le nom d'hôte en cours, puis en transmettant ce nom à gethostbyname (3) qui est censé renvoyer la version canonique de ce nom d'hôte. En supposant que cela soit réussi, $j est défini sur le nom qualifié complet, et $m est défini sur la partie domaine du nom (tout après le premier point). La macro $w est définie sur le premier mot (tout avant le premier point) si vous avez un fichier de configuration de niveau 5 ou supérieur ; sinon, il est défini sur la même valeur que $j. Si la canonisation n'aboutit pas, il est impératif que le fichier de configuration $j soit défini sur le nom de domaine complet.
La macro $f est l'ID de l'expéditeur tel qu'il a été défini à l'origine ; lors du mailing vers un hôte spécifique, la macro $g est définie sur l'adresse de l'expéditeur par rapport au destinataire. Par exemple, si un utilisateur envoie àking@castle.comDe la machinevangogh.painter.com, la macro $f seravincentEt la macro $g seravincent@vangogh.painter.com.
La macro $x est définie sur le nom complet de l'expéditeur. Cela peut être déterminé de plusieurs façons. Il peut être transmis en tant qu'indicateur à Sendmail. Il peut être défini dans la variable d'environnement NAME. Le troisième choix est la valeur de la ligne "Full-Name:" dans l'en-tête s'il existe, et le quatrième choix est le champ de commentaire d'une ligne "From:". Si tous ces éléments échouent et que le message est émis localement, le nom complet est recherché dans le fichier /etc/passwd .
Lors de l'envoi, les macros $h, $uet $z sont définies sur l'hôte, l'utilisateur et le répertoire de base (si local) du destinataire. Les deux premiers sont définis à partir de la partie $@ et $: des règles de réécriture, respectivement.
Les macros $p et $t sont utilisées pour créer des chaînes uniques (par exemple, pour la zone "Message-Id:"). La macro $i est définie sur l'ID file d'attente sur cet hôte ; si elle est mise dans la ligne d'horodatage, elle peut être utile pour le suivi des messages. La macro $v est définie comme le numéro de version de Sendmail; elle est généralement mise dans des horodatages et s'est avérée utile pour le débogage.
La zone $c est définie sur le "nombre de noeuds", c'est-à-dire le nombre de fois où ce message a été traité. Cela peut être déterminé par l'indicateur -h sur la ligne de commande ou en comptant les horodatages dans le message.
Les zones $r et sont définies sur le protocole utilisé pour communiquer avec Sendmail et le nom d'hôte émetteur. Ils peuvent être définis ensemble à l'aide de l'indicateur de ligne de commande -p ou séparément à l'aide des indicateurs -M ou -oM.
$_ est défini sur un nom d'hôte émetteur validé. Si l'expéditeur exécute un serveur IDENT compatible RFC 1413 et que le protocole IDENT est activé, il inclura le nom d'utilisateur sur cet hôte.
Les macros $ (nom_client), $ (add_client)et $ (port_client) sont définies sur le nom, l'adresse et le numéro de port de l'hôte de connexion qui appelle Sendmail en tant que serveur. Ils peuvent être utilisés dans les ensembles de règles Check_ * (à l'aide du formulaire d'évaluation différée $& ).
Modification de la macro de nom de domaine
DDname1.name2.name3.name4Cette macro peut être définie automatiquement via la commande Nom d'hôte . La commande Sendmail lit ce qui a été défini avec la commande Nom d'hôte et l'utilise pour initialiser les macros et classes d'hôte et de domaine. Les macros de fichier de configuration doivent être modifiées uniquement si vous souhaitez que les noms d'hôte et de domaine Sendmail soient différents de ceux définis par la commande Nom d'hôte .
Pour modifier la macro de nom de domaine:
- Entrez la commande :
vi /etc/mail/sendmail.cf - Recherche de la ligne commençant parDD.
- Remplacer les éléments suivantsDDAvec votre nom de domaine. Par exemple, si votre nom de domaine estnewyork.abc.com, entrez:
DDnewyork.abc.com - Enregistrez le fichier et quittez l'éditeur.
Modification de la macro de nom d'hôte
La macro de nom d'hôte, Dw, indique le nom de votre système hôte utilisé dans l'adresse de retour de tous les messages que vous générez. Le format de la macro de nom d'hôte est Dw suivi du nom d'hôte de cette machine, par exemple:
Dwhostname
Par défaut, la commande Sendmail lit ce qui a été défini avec la commande Nom d'hôte et l'utilise pour initialiser les macros et classes d'hôte et de nom de domaine. Modifiez les macros de fichier de configuration uniquement si vous souhaitez que l'hôte de la commande Sendmail et les noms de domaine soient différents de ceux définis par la commande Nom d'hôte .
Pour modifier la macro de nom d'hôte:
- Entrez la commande :
vi /etc/mail/sendmail.cf - Recherche de la ligne commençant parDw.
- Remplacer les éléments suivantsDwAvec votre nom d'hôte. Par exemple, si votre nom d'hôte estbrown, entrez:
Dwbrown - Enregistrez le fichier et quittez l'éditeur.Remarque: Si la macro Dw est définie, vous devez également définir la classe CW (hostname).
Modification du fichier sendmail.cf et du fichier submit.cf
cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.working
cp /etc/mail/submit.cf /etc/mail/submit.cf.workingSi les modifications que vous apportez font que le système de messagerie ne fonctionne pas correctement, vous pouvez revenir à l'utilisation d'une copie du fichier /etc/mail/sendmail.cf ou du fichier /etc/mail/submit.cf dont vous savez qu'il fonctionne.
Vous pouvez modifier les fichiers de sécurité en utilisant votre éditeur de texte préféré. Cependant, certains éditeurs stockent des onglets comme le nombre d'espaces qu'ils représentent, et non pas le caractère de tabulation lui-même. Cela peut entraîner des résultats inattendus si le caractère de tabulation est défini comme le caractère de séparation de zone dans les jeux de règles. Utilisez l'éditeur vi pour éviter ce problème ou modifiez le caractère de séparation de zone avec l'option J . (Pour plus de commodité, cette discussion suppose que vous utilisez l'éditeur vi pour modifier les fichiers de configuration.)
Après avoir modifié des informations dans le fichier /etc/mail/sendmail.cf ou dans le fichier /etc/mail/submit.cf , vous devez demander au démon de relire le fichier. Voir la section Rendre le démon sendmail relu les informations de configuration pour ces instructions.
Rendre le démon sendmail relu les informations de configuration
Une fois que vous avez apporté des modifications à un fichier de configuration, demandez au démon de relire le fichier. Si vous avez démarré la commande Sendmail à l'aide de la commande Startsrc , entrez la commande suivante:
refresh -s sendmail
kill -1 `cat /etc/mail/sendmail.pid`Ces deux commandes entraînent le démon à relire le fichier /etc/mail/sendmail.cf , le fichier /etc/mail/submit.cf , le fichier /etc/mail/aliases et le fichier /etc/sendmail.nl .
Base de données Alias
name: name1, name2, ...linda@cloud.ai.acme.org: linda@CS.A l'effet désiré. Les alias peuvent être poursuivis en démarquant les lignes de continuation avec un espace ou un onglet. Les lignes vides et les lignes commençant par un signe dièse (#) sont des commentaires.
Le second formulaire est traité par le nouveau gestionnaire de base de données (NDBM) ou la bibliothèque Berkeley DB. Ce formulaire se trouve dans le fichier /etc/mail/aliases.db (si vous utilisez NEWDB) ou /etc/mail/aliases.dir et /etc/mail/aliases.pag (si vous utilisez NDBM). Il s'agit du format utilisé par Sendmail pour résoudre les alias. Cette technique est utilisée pour améliorer les performances.
AliasFile=switch:aliasesnis sur le devant) sera utilisé comme nom de fichier pour une entrée "fichiers" dans le commutateur d'alias. Par exemple, si le fichier de configuration contientAliasFile=/etc/mail/aliasesaliases nis files nisalors les alias seront d'abord recherchés dans la base de données NIS, puis dans /etc/mail/aliases.
Reconstitution de la base de données d'alias
newaliases/usr/sbin/sendmail -biSi l'option RebuildAliases est spécifiée dans la configuration, sendmail régénère automatiquement la base de données d'alias si possible lorsqu'elle est obsolète. La reconstruction automatique peut être dangereuse sur des machines lourdement chargées avec de gros fichiers d'alias. Si la reconstruction de la base de données peut prendre plus de temps que le délai de reconstruction (option AliasWait, qui est normalement de cinq minutes), il est possible que plusieurs processus démarrent le processus de reconstruction simultanément.
Si plusieurs bases de données d'alias sont spécifiées, l'indicateur -bi reconstruit tous les types de base de données. II comprend, par exemple, qu'il peut reconstruire les bases de données NDBM, mais pas les bases de données NIS.
Problèmes potentiels liés à la base de données d'alias
Un certain nombre de problèmes peuvent se produire avec la base de données d'alias. Ils résultent tous d'un processus Sendmail accédant à la version DBM alors qu'il n'est que partiellement construit. Cela peut se produire dans deux circonstances: un processus accède à la base de données alors qu'un autre processus est reconstruit, ou le processus de reconstruction de la base de données meurt (en raison d'une panne ou d'une panne du système) avant de terminer la reconstruction.
Sendmail dispose de trois techniques pour résoudre ces problèmes. Tout d'abord, il ignore les interruptions lors de la reconstruction de la base de données, ce qui évite le problème de l'abandon du processus en laissant une base de données partiellement reconstruite. Ensuite, il verrouille le fichier source de la base de données lors de la régénération, mais cela peut ne pas fonctionner sur NFS ou si le fichier n'est pas accessible en écriture. Troisièmement, à la fin de la reconstruction, il ajoute un alias du formulaire:
@: @
(ce qui n'est pas normalement légal). Avant d'accéder à la base de données, Sendmail vérifie que cette entrée existe.
Liste des propriétaires
Si une erreur se produit lors de l'envoi à une certaine adresse, X, Sendmail recherche un alias du formulaire Propriétaire-x pour recevoir les erreurs. Ceci est généralement utile pour une liste de diffusion où l'émetteur de la liste n'a aucun contrôle sur la maintenance de la liste elle-même. Dans ce cas, le responsable de la liste serait le propriétaire de la liste. Par exemple :
unix-wizards: linda@paintbox, wnj@monet, nosuchuser,
sam@matisse
owner-unix-wizards: unix-wizards-request
unix-wizards-request: linda@paintbox
Causeraitlinda@paintboxPour obtenir l'erreur qui se produit lorsqu'une personne envoie à des assistants unix en raison de l'inclusion denosuchuserSur la liste.
Les propriétaires de listes entraînent également la modification de l'adresse de l'expéditeur de l'enveloppe. Le contenu de l'alias du propriétaire est utilisé s'il pointe vers un seul utilisateur. Sinon, le nom de l'alias est utilisé. Pour cette raison, et pour se conformer aux conventions sur l'Internet, l'adresse "propriétaire" pointe normalement à l'adresse "-demande" ; cela entraîne la sortie des messages avec la convention Internet type d'utilisation de "liste-request" comme adresse de retour.
Transmission par utilisateur (fichiers .forward)
Comme alternative à la base de données d'alias, les utilisateurs peuvent placer un fichier portant le nom ". Forward" dans leur répertoire de base. Si ce fichier existe, Sendmail redirige le courrier de cet utilisateur vers la liste des adresses répertoriées dans le fichier .forward . Par exemple, si le répertoire de base de l'utilisateur "kenly" a un fichier .forward avec le contenu:
kenly@ernie
joel@renoir
Alors n'importe quel courrier arrivant pour "kenly" sera redirigé vers les comptes spécifiés.
Le fichier de configuration définit une séquence de noms de fichier à vérifier. Par défaut, il s'agit du fichier .forward de l'utilisateur, mais il peut être défini pour être plus général à l'aide de l'option ForwardPath (J). Si vous modifiez cette option, vous devez en informer votre base d'utilisateurs.
Prise en charge du protocole IDENT
UCB Sendmail prend en charge le protocole IDENT tel que défini dans la RFC 1413. Bien que cela améliore l'identification de l'auteur d'un message électronique en faisant un "rappel" au système d'origine pour inclure le propriétaire d'une connexion TCP particulière dans la trace d'audit, il n'est en aucun cas parfait ; un faussaire déterminé peut facilement violer la sécurité du protocole IDENT.
La description suivante est extraite de la RFC 1413:
6. Considérations relatives à la sécurité
Les informations renvoyées par ce protocole sont tout aussi fiables que l'hôte qui le fournit OU l'organisation qui exploite l'hôte. Par exemple, un PC dans un laboratoire ouvert n'a que peu de contrôles pour empêcher un utilisateur d'avoir ce protocole renvoyer un identificateur que l'utilisateur souhaite. De même, si l'hôte a été compromis, l'information retournée peut être complètement erronée et trompeuse.
Le Protocole d'identification n'est pas un protocole d'autorisation ou de contrôle d'accès. Au mieux, elle fournit des informations d'audit supplémentaires sur les connexions TCP. Au pire, elle peut fournir des informations trompeuses, incorrectes ou malicieusement incorrectes.
L'utilisation des informations renvoyées par ce protocole à d'autres fins que la vérification est fortement découragée. Plus précisément, l'utilisation d'informations sur le protocole d'identification pour prendre des décisions de contrôle d'accès, soit comme méthode principale (c'est-à-dire pas d'autres contrôles), soit comme complément à d'autres méthodes peut entraîner un affaiblissement de la sécurité normale de l'hôte.
Un serveur d'identification peut révéler des informations sur les utilisateurs, les entités, les objets ou les processus qui peuvent normalement être considérés comme privés. Un serveur d'identification fournit un service qui est un analogue approximatif des services CallerID fournis par certaines compagnies de téléphone et un grand nombre des mêmes considérations et arguments de confidentialité qui s'appliquent au service CallerID s'appliquent à Identification. Si vous n'exécutez pas un serveur "finger" en raison de considérations de confidentialité, vous pouvez ne pas vouloir exécuter ce protocole.
Réglage
Il existe un certain nombre de paramètres de configuration que vous pouvez modifier en fonction des exigences de votre site. La plupart d'entre eux sont définis à l'aide d'une option du fichier sendmail.cf ou du fichier submit.cf . Par exemple, la ligne "O Time-out.queuereturn=5d" définit l'option "Timeout.queuereturn" sur la valeur "5d" (cinq jours).
La plupart de ces options ont des valeurs par défaut appropriées pour la plupart des sites. Cependant, les sites ayant des charges de courrier très élevées peuvent trouver qu'ils ont besoin de les régler le cas échéant pour leur charge de courrier. En particulier, les sites faisant l'objet d'un grand nombre de petits messages, dont plusieurs sont livrés à de nombreux destinataires, peuvent trouver qu'ils ont besoin d'ajuster les paramètres qui traitent des priorités en matière de files d'attente.
Toutes les versions antérieures de Sendmail avaient des noms d'option à un seul caractère. Bien que les anciens noms courts soient toujours acceptés, la plupart des nouvelles options n'ont pas de équivalents courts.
Dépassements du délai d'attente
Tous les intervalles de temps sont définis à l'aide d'une syntaxe à l'échelle. Par exemple, "10m" représente dix minutes, alors que "2h30m" représente deux heures et demie. L'ensemble complet des échelles est:
- s
- secondes
- m
- minutes
- h
- heures
- d
- jours
- w
- semaines
Délais de lecture
Les délais d'attente ont tous les noms d'option "Time-out.suboption". Les sous-options reconnues, leurs valeurs par défaut et les valeurs minimales autorisées par la section 5.3.2 de RFC 1123 sont les suivantes:
| Sous-option | Descriptif |
|---|---|
| Aconnect | Le délai d'attente global en attente de toute connexion pour une tentative de livraison unique pour réussir [ 0, non spécifié ]. Si 0, aucune limite globale n'est appliquée. Cela peut être utilisé pour limiter la durée totale de la tentative de connexion à une longue liste d'hôtes pouvant accepter un courrier électronique pour le destinataire. Ce délai ne s'applique pas au FallbackMXhost, c'est-à-dire que si le délai est écoulé, le FallbackMXhost est essayé ensuite. |
| auth | Délai d'attente pour une réponse dans un dialogue SMTP AUTH [10m, non spécifié ]. |
| commande- | Dans le serveur SMTP, délai d'attente d'une autre commande. [1h, 5m]. |
| Connexion | Délai d'attente d'ouverture d'une connexion SMTP (appel système de connexion (2)) [ 0, non spécifié ]. Si zéro, utilise la valeur par défaut du noyau. En aucun cas cette option ne peut prolonger le délai plus long que celui fourni par le noyau, mais elle peut le raccourcir. Il s'agit de contourner les noyaux qui fournissent un temps de connexion extrêmement long (90 minutes dans un cas). |
| control | Le délai d'exécution d'une transaction de socket de contrôle complète [2m, aucun ]. |
| Basededonnées- | L'attente de lecture d'un bloc de données (c'est-à-dire le corps du message). [1h, 3m]. Cela doit être long car il s'applique également aux programmes d'entrée de tuyauterie de Sendmail qui n'ont aucune garantie de rapidité. |
| Datafinal- | Atattente d'une réponse du point mettant fin à un message. [1h,10m]. Si cela est plus court que le temps réellement nécessaire pour que le destinataire puisse délivrer le message, des doublons seront générés. Cette question est abordée dans RFC1047. |
| Datainit- | Atattente d'une réponse d'une commande DATA [5m, 2m]. |
| Fileopen | The time-out for opening .forward and :include:Fichiers [60s, none]. |
| Iconnect | Identique à connect, mais s'applique uniquement à la tentative initiale de connexion à un hôte pour un message donné [0, unspecified]. Cette période doit être très courte (quelques secondes). Les hôtes qui sont bien connectés et réceptifs seront desservis immédiatement. Les hôtes lents ne détiennent pas d'autres livraisons lors de la tentative de livraison initiale. |
| Ident- | Délai d'attente d'une réponse à une requête IDENT [30s11, non spécifié ]. |
| Initiale | L'attente du message de message d'accueil initial 220 [5m, 5m]. |
| Helo | Atattente d'une réponse d'une commande HELO ou EHLO [5m, non spécifié ]. Cela peut nécessiter une recherche de nom d'hôte, donc cinq minutes est probablement un minimum raisonnable. |
| Statut d'hôte | L'heure à laquelle les informations de statut long sur un hôte (par exemple, l'hôte) seront mises en cache avant qu'elles ne soient considérées comme étant périmées [30m, non spécifié ]. |
| Courrier- | Atattente d'une réponse d'une commande MAIL [10m, 5m]. |
| divers | L'attente d'une réponse à partir de commandes diverses (mais courtes) telles que NOOP (no-opération) et VERB (passez en mode prolixe). [2m, non spécifié ]. |
| sortie | Atattente d'une réponse d'une commande QUIT [2m, non spécifié ]. |
| Rcpt- | Atattente d'une réponse d'une commande RCPT [1h, 5m]. Cela devrait être long car il pourrait s'agir d'une liste qui prend beaucoup de temps à prendre de l'expansion (voir ci-dessous). |
| rset | Atattente d'une réponse d'une commande RSET [5m, non spécifié ]. |
| resolver.retrans | Définit l'intervalle de temps de retransmission du programme de résolution en secondes. Définit Timeout.resolver.retrans.first et Timeout.resolver.retrans.normal. |
| resolver.retrans.first | Définit l'intervalle de temps de retransmission du programme de résolution en secondes pour la première tentative de distribution d'un message. |
| resolver.retrans.normal | Définit l'intervalle de temps de retransmission en secondes pour toutes les recherches du programme de résolution, à l'exception de la première tentative de distribution. |
| resolver.retry | Définit le nombre de tentatives de retransmission d'une requête de résolution. Définit à la fois Timeout.resolver.retry.first et Timeout.resolver.retry.normal. |
| resolver.retry.first | Définit le nombre de tentatives de retransmission d'une requête de résolution pour la première tentative de distribution. |
| resolver.retry.normal | Définit le nombre de tentatives de retransmission d'une requête de programme de résolution pour toutes les recherches du programme de résolution, à l'exception de la première tentative de distribution. |
| Starttls | Délai d'attente pour une réponse à une commande SMTP STARTTLS et l'établissement de liaison TLS [1h, non spécifié ]. |
Pour la compatibilité avec les anciens fichiers de configuration, si aucune sous-option n'est spécifiée, tous les délais d'attente marqués avec - sont définis sur la valeur indiquée.
Délais d'attente des messages
Après avoir été assis dans la file d'attente pendant quelques jours, un message s'affiche. Il s'agit de s'assurer qu'au moins l'expéditeur est conscient de l'impossibilité d'envoyer un message. Le délai d'exécution est généralement de cinq jours. Il est parfois considéré comme pratique d'envoyer un message d'avertissement si le message est dans la file d'attente plus de quelques heures (en supposant que vous avez normalement une bonne connectivité ; si vos messages prenaient normalement plusieurs heures à envoyer, vous ne voudriez pas le faire car il ne s'agit pas d'un événement inhabituel). Ces délais d'attente sont définis à l'aide des options Timeout.queuereturn et Timeout.queuewarn dans le fichier de configuration (auparavant, les deux étaient définis à l'aide de l'option T ).
Etant donné que ces options sont globales et que vous ne pouvez pas savoir combien de temps un autre hôte en dehors de votre domaine sera arrêté, un délai de cinq jours est recommandé. Cela permet à un destinataire de corriger le problème même s'il se produit au début d'une longue fin de semaine. La section RFC 1123 5.3.1.1 indique que ce paramètre doit être "d'au moins 4 à 5 jours".
La valeur Timeout.queuewarn peut être associée à l'option T en indiquant l'heure à laquelle un message d'avertissement doit être envoyé. Les deux délais d'attente sont séparés par une barre oblique. Par exemple, la ligne:
OT5d/4h
Provoque l'échec du courrier électronique après cinq jours, mais un message d'avertissement sera envoyé après quatre heures. Cela devrait être suffisamment important pour que le message ait été essayé plusieurs fois.
Intervalle d'attente
L'argument de l'indicateur -q indique la fréquence d'exécution de la file d'attente par un sous-démon. Cette valeur est généralement comprise entre quinze minutes et une heure. RFC 1123, section 5.3.1.1 recommande que cette durée soit d'au moins 30 minutes.
Interformage lors des exécutions de file d'attente
En définissant l'option ForkEachJob(Y), sendmail se mettra en attente avant chaque message individuel pendant l'exécution de la file d'attente. Cela empêchera Sendmail de consommer de grandes quantités de mémoire, de sorte qu'il peut être utile dans des environnements pauvres en mémoire. Cependant, si l'option ForkEachJob n'est pas définie, sendmail gardera la trace des hôtes qui sont hors service pendant l'exécution d'une file d'attente, ce qui peut améliorer considérablement les performances.
Si l'option ForkEachJob est activée, sendmail ne peut pas utiliser la mise en cache des connexions.
Priorités de la file
Chaque message reçoit une priorité lorsqu'il est instancié pour la première fois, composé de la taille du message (en octets) compensée par la classe de message (qui est déterminée à partir de l'en-tête Précedence:) fois le "facteur de classe de travail" et le nombre de destinataires multiplié par le "facteur de destinataire du travail". La priorité est utilisée pour commander la file d'attente. Des nombres plus élevés pour la priorité signifient que le message sera traité ultérieurement lors de l'exécution de la file d'attente.
La taille du message est incluse de sorte que les messages volumineux sont pénalisés par rapport aux petits messages. La classe de message permet aux utilisateurs d'envoyer des messages "haute priorité" en incluant une zone "Precedence:" dans leur message ; la valeur de cette zone est examinée dans les lignes P du fichier de configuration. Etant donné que le nombre de destinataires affecte le volume de chargement d'un message sur le système, il est également inclus dans la priorité.
Les facteurs de destinataire et de classe peuvent être définis dans le fichier de configuration à l'aide des options RecipientFactor (y) et ClassFactor (z) respectivement. La valeur par défaut est 30000 (pour le facteur destinataire) et 1800 (pour le facteur de classe). La priorité initiale est la suivante:
pri = msgsize - (class times bold ClassFactor) + (nrcpt times bold
RecipientFactor)
(N'oubliez pas que des valeurs plus élevées pour ce paramètre signifient que le travail sera traité avec une priorité inférieure.)
La priorité d'un travail peut également être ajustée à chaque fois qu'il est traité (c'est-à-dire à chaque tentative de livraison) à l'aide du "facteur de temps de travail", défini par l'option RetryFactor(Z). Ceci est ajouté à la priorité, de sorte qu'il diminue normalement la priorité du travail, au motif que les emplois qui ont échoué à de nombreuses reprises auront tendance à échouer à nouveau à l'avenir. La valeur par défaut de l'option RetryFactor est 90000.
Limitation de charge
Sendmail peut être invité à mettre en file d'attente (mais pas à distribuer) du courrier si la charge moyenne du système est trop élevée à l'aide de l'option QueueLA (x). Lorsque la moyenne de charge dépasse la valeur de l'option QueueLA , le mode de distribution est défini sur q (file d'attente uniquement) si l'option QueueFactor (q) divisée par la différence entre la moyenne de charge en cours et l'option QueueLA plus un dépasse la priorité du message ; en d'autres termes, le message est mis en file d'attente si:
pri > { bold QueueFactor } over { LA - { bold QueueLA } + 1 }
L'option QueueFactor prend par défaut la valeur 600000, de sorte que chaque point de la moyenne de charge vaut 600000 points de priorité (comme décrit ci-dessus).
Pour les cas drastiques, l'option RefuseLA (X) définit une moyenne de charge à laquelle sendmail refuse d'accepter les connexions réseau. Le courrier généré localement (y compris le courrier UUCP entrant) est toujours accepté.
Mode d'envoi
Il existe un certain nombre de modes de distribution dans lesquels sendmail peut fonctionner, définis par l'option de configuration DeliveryMode (d). Ces modes précisent la vitesse de livraison du courrier. Les modes juridiques sont les suivants:
| Mode d'envoi | Définition |
|---|---|
| i | Livrer en mode interactif (synchrone) |
| B | Livrer en arrière-plan (de manière asynchrone) |
| q | File d'attente uniquement (ne pas exécuter) |
| d | Différer les tentatives de livraison (ne pas exécuter). |
Il y a des compromis. Le mode I donne à l'expéditeur les commentaires les plus rapides, mais il peut ralentir certains mailers et n'est pratiquement jamais nécessaire. Le mode B délivre rapidement, mais peut entraîner un grand nombre de processus si vous disposez d'un publieur qui prend beaucoup de temps pour délivrer un message. Le mode Q réduit la charge sur votre machine, mais signifie que la livraison peut être retardée jusqu'à l'intervalle de la file d'attente. Le mode D est identique au mode Q , sauf qu'il empêche également toutes les recherches de mappe anticipée de travailler ; il est destiné aux sites "à la demande" où les recherches DNS peuvent être très coûteuses. Quelques messages d'erreur simples (par exemple,host unknown during the SMTP protocol) Sera retardé à l'aide de ce mode. Le mode B est la valeur par défaut.
Si vous exécutez en mode Q (file d'attente uniquement), D (différé) ou B (distribution en arrière-plan), Sendmail ne va pas développer d'alias et suivre les fichiers .forward au moment de la réception initiale du courrier. Ceci accélère la réponse aux commandes RCPT. Le mode I ne peut pas être utilisé par le serveur SMTP.
Niveau de journalisation
Le niveau de consignation peut être défini pour Sendmail. La valeur par défaut à l'aide d'une table de configuration standard est de niveau 9. Les niveaux sont les suivants:
| Niveau de journalisation | Définition |
|---|---|
| 0 % | Consignation minimale. |
| 1 seul | Graves défaillances du système et problèmes de sécurité potentiels. |
| 2 | Les communications perdues (problèmes de réseau) et les échecs de protocole. |
| 3 | Autres graves défaillances. |
| 4 | Des défaillances mineures. |
| 5,00 | Statistiques de collecte de messages. |
| 6 | Création de messages d'erreur, de commandes VRFY et EXPN. |
| 7 | Echecs de livraison (par exemple, hôte ou utilisateur inconnu). |
| 8 | Livraisons réussies et reconstructions de base de données d'alias. |
| 9 | Messages différés (par exemple, en raison d'une panne d'hôte). |
| 10 | Expansion de la base de données (alias, forward et userdb lookups). |
| 11 | Erreurs NIS et traitement de fin de travail. |
| 12 | Consigne toutes les connexions SMTP. |
| 13 | Consigne les cartouches d'utilisateur incorrectes, les fichiers dont les droits d'accès sont incorrects et d'autres situations douteuses. |
| 14 | Les journaux ont refusé les connexions. |
| 15 | Consigner toutes les commandes SMTP entrantes et sortantes. |
| 20 | Consigne les tentatives d'exécution des fichiers de file d'attente verrouillés. Il ne s'agit pas d'erreurs, mais il peut être utile de noter si votre file d'attente semble obstruée. |
| 30 | Les verrous perdus (uniquement si vous utilisez Lockf au lieu de Flock). |
Modes de fichier
Les modes utilisés pour les fichiers dépendent de la fonctionnalité que vous souhaitez et du niveau de sécurité requis.
La base de données utilisée par Sendmail est représentée par le fichier suivant:
- /etc/mail/aliases.db
- Base de données Berkeley DB
Le mode de ces fichiers doit correspondre au mode de /etc/mail/aliases. Si Alias est inscriptible et que les fichiers ne le sont pas, les utilisateurs ne pourront pas refléter les modifications souhaitées dans la base de données réelle. Toutefois, si Alias est en lecture seule et que les fichiers DBM sont inscriptible, un utilisateur légèrement sophistiqué peut prendre des dispositions pour voler le courrier de toute façon.
Si vos fichiers DBM ne sont pas accessibles en écriture ou si la reconstruction automatique n'est pas activée (avec l'option AutoRebuildAliases, vous devez veiller à reconstruire la base de données des alias chaque fois que vous modifiez la version texte :
newaliases
Si cette étape est ignorée ou oubliée, les modifications prévues seront perdues.
Mise en cache de connexion
Lors du traitement de la file d'attente, Sendmail tente de garder les dernières connexions ouvertes ouvertes pour éviter les coûts de démarrage et d'arrêt. Ceci s'applique uniquement aux connexions IPC.
Lors de la tentative d'ouverture d'une connexion, le cache est recherché pour la première fois. Si une connexion ouverte est détectée, elle est explorée pour vérifier si elle est toujours active en envoyant une commande RÉTABLIR . Il ne s'agit pas d'une erreur si cette erreur échoue ; à la place, la connexion est fermée et rouverte.
Deux paramètres contrôlent le cache de connexion. L'option ConnectionCacheSize (k) définit le nombre de connexions ouvertes simultanées qui seront autorisées. Si elle est définie à zéro, les connexions seront fermées le plus rapidement possible. La valeur par défaut est un. Cette valeur doit être définie comme appropriée pour la taille de votre système ; elle limitera la quantité de ressources système que Sendmail utilisera lors de l'exécution de la file d'attente. Ne définissez jamais cette valeur supérieure à 4.
L'option ConnectionCacheTimeout (K) spécifie la durée maximale d'inactivité d'une connexion mise en cache. Lorsque le temps d'inactivité dépasse cette valeur, la connexion est fermée. Ce nombre doit être restreint (moins de dix minutes) pour vous empêcher de saisir trop de ressources d'autres hôtes. La valeur par défaut est de cinq minutes.
Accès au serveur de noms
Si vous souhaitez une prise en charge de l'échange de machines (MX), vous devez utiliser le service de noms de domaine (DNS).
L'option ResolverOptions(I) permet de modifier les options du serveur de noms. La ligne de commande prend une série de drapeaux en tant qu'insolveur documenté (3) (avec le premier "RES_" supprimé). Chaque élément peut être précédé d'un élément facultatif "+" ou "-". Par exemple, la ligne:
O ResolverOptions=+AAONLY -DNSRCH
Active l'AAONLY (Accepter uniquement les réponses autorisées) et désactive les options DNSRCH (rechercher le chemin du domaine). La plupart des bibliothèques de résolution par défaut sont DNSRCH, DEFNAMES et RECURSE sur et toutes les autres. Vous pouvez également inclure "HasWildcardMX" pour spécifier qu'il y a un enregistrement MX joker correspondant à votre domaine ; cela désactive la correspondance MX lors de la canonisation des noms, ce qui peut conduire à des canonisations inappropriées.
Déplacement des fichiers de transfert par utilisateur
Certains sites montent le répertoire de base de chaque utilisateur à partir d'un disque local sur leur poste de travail, de sorte que l'accès local soit rapide. Toutefois, le résultat est que les recherches de fichiers .forward sont lentes. Dans certains cas, le courrier peut même être livré sur des machines de manière inappropriée en raison de la panne d'un serveur de fichiers. La performance peut être particulièrement mauvaise si vous exécutez l'utilitaire de montage automatique.
L'option ForwardPath (J) permet de définir un chemin d'accès aux fichiers de réacheminement. Par exemple, la ligne de fichier de configuration:
O ForwardPath=/var/forward/$u:$z/.forward.$w
recherche d'abord un fichier portant le même nom que la connexion de l'utilisateur dans /var/forward. S'il est introuvable (ou inaccessible), la recherche est effectuée dans le fichier ".forward.machinename" du répertoire de base de l'utilisateur.
Si vous créez un répertoire tel que /var/forward, il doit être en mode 1777 (c'est-à-dire que le bit de rappel doit être défini). Les utilisateurs doivent créer le mode de fichiers 644.
Espace libre
Sur les systèmes disposant de l'un des appels système de la famille statfs(2) (y compris statvfs et ustat), vous pouvez spécifier un nombre minimum de blocs libres sur le système de fichiers de la file d'attente à l'aide de l'option MinFreeBlocks(b). Si le nombre de blocs indiqué est inférieur au nombre de blocs indiqué sur le système de fichiers sur lequel la file d'attente est montée, le serveur SMTP rejettera le courrier avec le code d'erreur 452. Ceci invite le client SMTP à réessayer ultérieurement.
Longueur maximale de message
Pour éviter que votre système ne soit submergé par un message volumineux, l'option MaxMessageSize permet de fixer une limite absolue à la taille d'un message. Cette annonce sera annoncée dans le cadre du dialogue ESMTP et sera vérifiée lors de la collecte des messages.
Indicateurs de confidentialité
L'option PrivacyOptions (p) vous permet de définir certains indicateurs de "confidentialité". En fait, beaucoup d'entre eux ne vous donnent pas de vie privée supplémentaire, ils insistent plutôt sur le fait que les serveurs SMTP client utilisent la commande HELO avant d'utiliser certaines commandes ou d'ajouter des en-têtes supplémentaires pour indiquer d'éventuelles violations de sécurité.
L'option prend une série de noms de drapeau ; la vie privée finale est l'inclusion ou de ces drapeaux. Par exemple :
O PrivacyOptions=needmailhelo, noexpn
Insiste pour que la commande HELO ou EHLO soit utilisée avant que la commande MAIL ne soit acceptée et désactive la commande EXPN.
Les indicateurs sont détaillés dans la RFC 1123 S 5.1.6.
Envoyer à moi trop
Normalement, Sendmail supprime l'émetteur (enveloppe) de toutes les extensions de liste. Par exemple, si "linda" envoie à une liste qui contient "linda" comme l'un des membres, elle n'aura pas de copie du message. Si l'indicateur de ligne de commande -m (moi aussi) ou si l'option MeToo (m) est définie dans le fichier de configuration, ce comportement est supprimé.
C et F-Définir des classes
Ccphrase1 phrase2...
FcfileCHmonet ucbmonetCHmonet
CHucbmonetSont équivalents. Le formulaire "F" lit les éléments de la classe c à partir du fichier nommé.
Les éléments des classes sont accessibles dans des règles utilisant $= ou $ ~. Les $ ~ (entrées de correspondance non en classe) ne correspondent qu'à un seul mot ; les entrées de plusieurs mots de la classe sont ignorées dans ce contexte.
La classe $=w est définie comme étant l'ensemble de tous les noms connus par cet hôte. Cette option peut être utilisée pour faire correspondre les noms d'hôte locaux.
La classe $=k est définie comme étant la même que $k, c'est-à-dire le nom du noeud UUCP.
La classe $=m est définie sur l'ensemble de domaines par lesquels cet hôte est connu, initialement à peine $m.
La classe $=t est définie sur l'ensemble des utilisateurs sécurisés par la ligne de configuration T. Si vous souhaitez lire des utilisateurs de confiance à partir d'un fichier, utilisez Ft / file/nom.
La classe $=n peut être définie sur l'ensemble de types de corps MIME qui ne peuvent jamais être codés de huit à sept bits. Par défaut, il s'agit de "multipart/signed". Les types de message "message/ *" et "multipart/ *" ne sont jamais encodés directement. Les messages multiparties sont toujours traités de manière récursive. La gestion des messages / messages est contrôlée par la classe $ = s. La classe $=e contient le Content-Transfer-Encodings qui peut être codé 8-> 7 bits. Il est prédéfini pour contenir "7bit", "8bit" et "binary". La classe $=s contient l'ensemble de sous-types de message qui peuvent être traités de manière récursive. Par défaut, il contient uniquement "rfc822". Les autres types "message/ *" ne peuvent pas être codés 8-> 7 bits. Si un message contenant des données à huit bits est envoyé à un hôte sept bits et que ce message ne peut pas être encodé en sept bits, il sera dépouillé à 7 bits.
Les trois classes $ = U, $ = Y et $=Z sont définies pour décrire les hôtes nécessitant l'utilisation d'un mailer uucp. Plus précisément, $=U doit contenir tous les hôtes qui ont besoin de l'ancien mailer uucp. $=Y doit contenir tous les hôtes nécessitant le nouveau mailer uucp. Enfin, $=Z doit contenir tous les hôtes nécessitant le mailer uucp-uudom. Chaque hôte uucp doit appartenir à l'une de ces classes.
FL/etc/passwd %[^:]Qui lit chaque ligne jusqu'au premier deux-points.
Modification du nom d'hôte
CwCw alias aliasn... Par défaut, la commande Sendmail lit ce qui a été défini avec la commande Nom d'hôte et l'utilise pour initialiser les macros et classes d'hôte et de nom de domaine. Modifiez les macros de fichier de configuration uniquement si vous souhaitez que les noms d'hôte et de domaine Sendmail soient différents de ceux définis par la commande Nom d'hôte .
Pour modifier le nom d'hôte:
- Entrez la commande :
vi /etc/mail/sendmail.cf
ou
vi /etc/mail/submit.cf
- Rechercher les lignes commençant parDj and Dw.Dj and DwRemplacer les noms d'hôte et de domaine définis par "hostname".
- RemplacerDj and DwAvec les nouvelles informations sur le nom d'hôte. Par exemple, si votre nom d'hôte estbrown.newyork.abc.com, et vous avez un alias,brown2, entrez:
- Enregistrez le fichier et quittez l'éditeur.
Création d'une classe à l'aide d'un fichier
FClass FileName [Format]ClassEst le nom de la classe qui correspond à l'un des mots répertoriés dansFileName.Filenameest le chemin d'accès complet du fichier (par souci de commodité, vous pouvez placer le fichier dans le répertoire /etc/mail ).Formatest un spécificateur de format de sous-routine scanf facultatif qui indique le format des éléments de la classe dans FileName. :NONE.FormatLe spécificateur ne peut contenir qu'une seule spécification de conversion.
M-Définition de la boîte aux lettres
Les programmes et interfaces des expéditeurs sont définis dans cette ligne. Format :
Mname, {field=value}*
Où nom est le nom du mailer (utilisé en interne uniquement) et les paires "field = name" définissent les attributs de la mailer. Les zones sont les suivantes:
| Zone | Descriptif |
|---|---|
| PATH | Nom de chemin du mailer |
| Flags | Indicateurs spéciaux pour ce mailer |
| Expéditeur | Réécriture de jeu (s) pour les adresses de l'expéditeur |
| Destinataire | Réécriture des ensembles (s) pour les adresses de destinataires |
| argv | Un vecteur d'argument à transmettre à ce mailer |
| Eol | Chaîne de fin de ligne pour ce courrier |
| Taille maximale | Longueur maximale du message à ce mailer |
| Messages maxmessages | Le message maximal est transmis par connexion |
| Limite de ligne | Longueur de ligne maximale dans le corps du message |
| Répertoire | Répertoire de travail du mailer |
| ID utilisateur | ID utilisateur et groupe par défaut à exécuter |
| Nice | L'incrément sympa (2) pour le mailer |
| Jeu de caractères | Le jeu de caractères par défaut pour les caractères 8 bits |
| type | Informations de type MTS (utilisées pour les messages d'erreur) |
| wait | Délai d'attente maximal pour l'envoi du courrier |
| / | Répertoire racine du mailer |
| Groupe de files d'attente | Groupe de files d'attente par défaut pour le mailer. |
Seul le premier caractère du nom de zone est vérifié.
Les indicateurs de la liste suivante peuvent être définis dans la description du courrier. Tous les autres indicateurs peuvent être utilisés librement pour affecter des en-têtes à des messages destinés à des expéditeurs particuliers. Les indicateurs marqués avec - ne sont pas interprétés par le binaire Sendmail ; ils sont généralement utilisés pour corréler avec la portion des indicateurs de la ligne H. Les indicateurs marqués par = s'appliquent aux expéditeurs de l'adresse de l'expéditeur plutôt qu'aux expéditeurs destinataires habituels.
| Indicateur | Descriptif |
|---|---|
| a | Exécuter le protocole ESMTP (Extended SMTP) (défini dans les RFC 1651, 1652 et 1653). Cette option est utilisée par défaut si le message d'accueil SMTP inclut le mot "ESMTP". |
| A | Recherchez la partie utilisateur de l'adresse dans la base de données d'alias. Normalement, ce n'est que pour les expéditeurs locaux. |
| B | Forcer une ligne vide à la fin d'un message. Cette commande permet de contourner certaines versions de /bin/mail qui nécessitent une ligne vide, mais ne la fournissent pas elles-mêmes. Il ne serait normalement pas utilisé sur le courrier réseau. |
| c | N'incluez pas les commentaires dans les adresses. Cela ne doit être utilisé que si vous devez travailler autour d'un publieur distant qui devient confus par des commentaires. Cette option supprime les adresses du formulaire "Phrase < address>" ou "adresse (Commentaire)" jusqu'à "adresse". |
| C= | Si le courrier est reçu d'un mailer avec cet ensemble d'indicateurs, toutes les adresses de l'en-tête qui n'ont pas de signe ("@") Après avoir été réécrit par l'ensemble de règles trois aura la clause "@domain" à partir de l'adresse de l'enveloppe de l'expéditeur sur. Ceci permet de poster avec les en-têtes du formulaire:
Pour être réécrit automatiquement (bien que Pas soit fiable) comme suit:
|
| d | N'incluez pas les crochets autour des adresses de syntaxe d'adresse de route. Ceci est utile pour les mailers qui vont passer des adresses à un shell qui peut interpréter des signes de chevrons comme une redirection d'E-S. |
| D- | Ce mailer veut une ligne d'en-tête "Date:". |
| e | Ce courrier électronique est coûteux à connecter, essayez donc d'éviter de vous connecter normalement. Toute connexion nécessaire se produit lors d'une exécution de file d'attente. |
| E | Les lignes d'échappement commençant par "De" dans le message avec un signe ` >'. |
| F | Le publieur souhaite un -f à partir de l'indicateur, mais uniquement s'il s'agit d'une opération de l'avant réseau (c'est-à-dire que le publieur donnera une erreur si l'utilisateur exécutant n'a pas de droits spéciaux). |
| F- | Ce mailer veut une ligne d'en-tête "From:". |
| g | Normalement, Sendmail envoie des messages d'erreur générés en interne à l'aide de l'adresse de retour null, comme l'exige la RFC 1123. Cependant, certains expéditeurs n'acceptent pas d'adresse de retour nulle. Si nécessaire, vous pouvez définir l'indicateur G pour empêcher Sendmail de respecter les normes ; des messages d'erreur seront envoyés à partir de MAILER-DAEMON (en fait, la valeur de la macro $n). |
| h | Uppercase doit être conservé dans les noms d'hôte de ce mailer. |
| i | Faites une réécriture de la base de données utilisateur sur l'adresse de l'expéditeur de l'enveloppe. |
| i | Ce publieur parlera SMTP à un autre Sendmail, en tant que tel qu'il peut utiliser des fonctions de protocole spéciales. Cette option n'est pas requise (c'est-à-dire que si cette option est omise, la transmission fonctionne toujours avec succès, même si elle n'est peut-être pas aussi efficace que possible). |
| j | Faites une réécriture de la base de données utilisateur sur les destinataires et les expéditeurs. |
| k | Normalement, lorsque Sendmail se connecte à un hôte via SMTP, il vérifie qu'il n'est pas accidentellement le même nom d'hôte que possible si Sendmail est mal configuré ou si une interface réseau longue distance est définie en mode bouclage. Cet indicateur désactive la vérification de bouclage. Elle ne doit être utilisée que dans des circonstances très inhabituelles. |
| C | Actuellement non implémenté. Réservé pour le chunking. |
| l | Ce publieur est local (c'est-à-dire que la livraison finale sera effectuée). |
| I | Limitez les longueurs de ligne comme indiqué dans RFC821. Cette option obsolète doit être remplacée par la déclaration de courrier L=. Pour des raisons historiques, l'indicateur F définit également le drapeau 7. |
| m | Ce dernier peut envoyer plusieurs utilisateurs sur le même hôte dans une transaction. Lorsqu'une macro $u se produit dans la partie argv de la définition de mailer, cette zone sera répétée si nécessaire pour tous les utilisateurs éligibles. |
| M- | Ce publieur souhaite une ligne d'en-tête "Message-Id:". |
| n | N'insérez pas de ligne "De" de style UNIXà l'avant du message. |
| o | Toujours exécuter en tant que propriétaire de la boîte aux lettres du destinataire. Normalement, Sendmail s'exécute en tant qu'expéditeur pour le courrier généré localement ou en tant que "démon" (en fait, l'utilisateur spécifié dans l'option U ) lors de la distribution du courrier réseau. Le comportement normal est requis par la plupart des expéditeurs locaux, ce qui ne permet pas de définir l'adresse de l'expéditeur de l'enveloppe à moins que le destinataire ne s'exécute en tant que démon. Cette option est ignorée si l'indicateur S est défini. |
| p | Utilisez le chemin inverse de style route-addr dans la commande SMTP "MAIL FROM:" plutôt que simplement l'adresse de retour ; bien que cela soit requis dans la section RFC821 3.1, de nombreux hôtes ne traitent pas correctement les chemins inverses. Les chemins inverses sont officiellement découragés par la RFC 1123. |
| P- | Ce publieur veut une ligne "Return-Path:". |
| q | Lorsqu'une adresse qui résout ce courrier est vérifiée (commande SMTP VRFY), générer 250 réponses au lieu de 252 réponses. Cela implique que l'adresse est locale. |
| Indicateur | Descriptif |
|---|---|
| R | Identique à F, mais envoie un indicateur -r . |
| R | Ouvrez les connexions SMTP à partir d'un port "sécurisé". Les ports sécurisés ne sont pas sécurisés, sauf sur les machines UNIX , de sorte qu'il n'est pas clair que cela ajoute quoi que ce soit. |
| s | Supprimer les guillemets ("et \") de l'adresse avant d'appeler le mailer. |
| S | Ne réinitiez pas l'ID utilisateur avant d'appeler le mailer. Cela serait utilisé dans un environnement sécurisé où Sendmail s'est exécuté en tant que superutilisateur. Cela pourrait être utilisé pour éviter les fausses adresses. Si la zone U= est également spécifiée, cet indicateur permet à l'ID utilisateur de toujours être défini sur cet utilisateur et ce groupe (au lieu de le laisser en tant qu'utilisateur root). |
| U | Uppercase doit être conservé dans les noms d'utilisateur de ce mailer. |
| U | Ce mailer souhaite le style UUCP "De" lignes avec le "distant de < hôte>" à la fin. |
| w | L'utilisateur doit avoir un compte valide sur cette machine (getpwnam doit réussir). Si ce n'est pas le cas, le courrier est bossée. Cette fonction est requise pour obtenir la capacité ". Forward". |
| X- | Ce mailer veut une ligne d'en-tête "Full-Name:". |
| X | Ce mailer veut utiliser l'algorithme de point caché comme spécifié dans RFC821; en gros, n'importe quelle ligne commençant par un point aura un point supplémentaire prépended (à retirer à l'autre extrémité). Cela permet de s'assurer que les lignes du message contenant un point ne mettent pas fin prématurément au message. |
| Z | Exécutez le protocole LMTP (Local Mail Transfer Protocol) entre Sendmail et le mailer local. Il s'agit d'une variante sur SMTP définie dans la RFC 2033 qui est spécialement conçue pour être livré à une boîte aux lettres locale. |
| 0 % | Ne pas rechercher les enregistrements Mx pour les hôtes via SMTP. |
| 3 | Etendre la liste des caractères convertis en=XXNotation lors de la conversion enQuoted-PrintablePour inclure ceux qui ne sont pas mappés correctement entre ASCII et EBCDIC. Utile si vous avez des ordinateurs centraux IBM sur place. |
| 5,00 | Si aucun alias n'est trouvé pour cette adresse, transmettez l'adresse via le jeu de règles 5 pour une résolution alternative possible. Cette option est destinée à envoyer le courrier à un autre emplacement de livraison. |
| 6 | En-tête de bande à sept bits. |
| 7 | Enlever toutes les sorties à sept bits. Il s'agit de la valeur par défaut si l'indicateur F est défini. Notez que la suppression de cette option n'est pas suffisante pour obtenir des données complètes de huit bits transmises via Sendmail. Si l'option 7 est définie, elle est essentiellement toujours définie, car le huitième bit a été supprimé sur l'entrée. Notez que cette option n'aura d'impact que sur les messages qui n'ont pas eu de conversion MIME 8-> 7 bits. |
| 8 | S'il est défini, il est acceptable d'envoyer des données de huit bits à ce mailer ; la tentative habituelle de procéder à des conversions MIME 8-> 7 bits sera ignorée. |
| 9 | Si la valeur est définie, les conversions MIME 7-> 8 bits sont limitées. Ces conversions sont limitées aux données text/plain. |
| : | Vérifiez les adresses pour voir si elles commencent ":include:". Si c'est le cas, convertissez-les en "* include*" mailer. |
| | | Vérifiez les adresses pour voir si elles commencent par un ` |'. Si c'est le cas, convertissez-les en mailer "prog". |
| / | Vérifiez les adresses pour voir si elles commencent par un "`/". Si c'est le cas, convertissez-les en "* file*" mailer. |
| @ | Recherchez les adresses dans la base de données utilisateur. |
| % | Ne pas tenter de livrer le destinataire initial d'un message ou les files d'attente, sauf si le message en file d'attente est sélectionné à l'aide de l'un des modificateurs de file d'attente -qI/-qR/-qS ou d'une demande ETRN. |
Le mailer avec le nom spécial "error" peut être utilisé pour générer une erreur utilisateur. La zone hôte (facultatif) est un état de sortie à renvoyer et le champ utilisateur est un message à imprimer. L'état de sortie peut être numérique ou l'une des valeurs USAGE, NOUSER, NOHOST, UNAVAILABLE, SOFTWARE, TEMPFAIL, PROTOCOL ou CONFIG pour renvoyer le code de sortie EX_ correspondant. Par exemple, l'entrée:
$#error $@ NOHOST $: Host unknown in this domain
Sur la RHS d'une règle, l'erreur spécifiée sera générée et l'état de sortie "Hôte inconnu" sera renvoyé si les LHS correspondent. Il est toujours disponible pour être utilisé dans les ensembles de règles O, S et check_ ... et il ne peut pas être défini avec les commandes M .
Le mailer nommé "local" doit être défini dans chaque fichier de configuration. Cette option est utilisée pour la distribution du courrier local et est traitée de plusieurs manières. En outre, trois autres expéditeurs nommés "prog", "* file*" et "* include*" peuvent être définis pour ajuster la distribution des messages aux programmes, fichiers et :include: listes respectivement. Ils sont par défaut:
Mprog, P=/bin/sh, F=lsoDq9, T=DNS/RFC822/X-Unix, A=sh -c $u
M*file*, P=[FILE], F=lsDFMPEuq9, T=DNS/RFC822/X-Unix, A=FILE $u
M*include*, P=/dev/null, F=su, A=INCLUDE $u
Les ensembles de réécriture de l'expéditeur et du destinataire peuvent être un ID d'ensemble de règles simple ou deux ID séparés par une barre oblique Si c'est le cas, le premier ensemble de réécriture est appliqué aux adresses d'enveloppes et le second est appliqué aux en-têtes. La définition d'une valeur à zéro désactive la réécriture spécifique du mailer.
:NONE.DirectoryEst un chemin d'accès aux répertoires à essayer. Par exemple, la définitionD=$z:/Tente d'exécuter le répertoire de base du destinataire, mais s'il n'est pas disponible, il tente d'exécuter la racine du système de fichiers. Utilisez cette option sur le mailer Prog uniquement, car certains shells (par exemple, Csh) ne s'exécutent pas s'ils ne peuvent pas lire le répertoire de base. Etant donné que le répertoire de file d'attente ne peut généralement pas être lu par des utilisateurs non autorisés, les scripts Csh peuvent échouer s'ils sont utilisés en tant que destinataires.
:NONE.UseridSpécifie l'ID utilisateur et le groupe par défaut à exécuter. Elle remplace l'option DefaultUser q.v. Si l'indicateur S mailer est également spécifié, l'ID utilisateur et le groupe s'exécuteront en toutes circonstances. Utilisez le formulaire Utilisateur: groupe pour définir l'ID utilisateur et le groupe. L'une ou l'autre de ces variables peut être un entier ou un nom symbolique qui est recherché dans les fichiers Passwd et Groupe respectivement.
:NONE.CharsetEst utilisé lors de la conversion d'un message en MIME. Il s'agit du jeu de caractères utilisé dans le type de contenu: En-tête. S'il n'est pas défini, l'option DefaultCharset est utilisée. Si DefaultCharset n'est pas défini, la valeurunknown-8bitVMControl 2.4.x est utilisé. La zone Jeu de caractères s'applique à L'expéditeur mailer ; Pas celui du destinataire mailer. Par exemple: si l'adresse de l'expéditeur de l'enveloppe est sur le réseau local et que le destinataire se trouve sur un réseau externe, le jeu de caractères est défini à partir de laCharset=Pour le mailer de réseau local, et non pour le mailer de réseau externe.
:NONE.TypeDéfinit le type d'information utilisé dans les messages d'erreur MIME (tel que défini par la RFC 1984). Il contient trois valeurs séparées par des barres obliques: le type MTA (une description de la façon dont les hôtes sont nommés), le type d'adresse (une description des adresses électroniques) et le type de diagnostic (une description des codes de diagnostic d'erreur). Chaque doit être une valeur enregistrée ou commencer parX-. La valeur par défaut estdns/rfc822/smtp.
Exemples de spécifications de courrier électronique
- Pour spécifier un mailer de distribution local, entrez:
Le mailer est appelélocal. Son nom de chemin est/usr/bin/bellmail. Le publieur utilise les indicateurs suivants:Mlocal, P=/usr/bin/bellmail, F=lsDFMmn, S=10, R=20, A=mail $uL'ensemble de règles 10 doit être appliqué aux adresses de l'expéditeur dans le message. L'ensemble de règles 20 doit être appliqué aux adresses des destinataires. Informations supplémentaires envoyées au mailer dans leAChamp est le mot Courrier et les mots contenant le nom du destinataire.Article Descriptif l Indique la livraison locale. s Exporte les guillemets des adresses. DFM RequiertDate:, From:, etMessage-ID:. m Fournit à plusieurs utilisateurs. n N'a pas besoin d'un système d'exploitation From ligne au début du message.
H-Définir l'en-tête
Le format des lignes d'en-tête que Sendmail insère dans le message sont définis par la ligne H . La syntaxe de cette ligne est l'une des suivantes:
Hhname:htemplate
H[?mflags?]hname: htemplate
H[?${macro}?hname:htemplate
Les lignes de continuation de cette spécification se reflètent directement dans le message sortant. Le modèle htemplate est étendu avant l'insertion dans le message. Si les indicateurs (entour de points d'interrogation) sont spécifiés, au moins l'un des indicateurs spécifiés doit être indiqué dans la définition du publieur pour que cet en-tête soit automatiquement généré. Si l'un de ces en-têtes est dans l'entrée, il est reflété dans la sortie indépendamment de ces indicateurs.
Certains en-têtes ont une sémantique spéciale qui sera décrite ultérieurement.
Une syntaxe secondaire permet la validation des en-têtes lorsqu'ils sont lus. Pour activer la validation, utilisez:
HHeader: $>Ruleset
HHeader: $>+Ruleset
L'élément Ensemble de règles indiqué est appelé pour le En-têtespécifié. Comme les autres ensembles de règles Check_ * , il peut renvoyer$#errorPour rejeter le message ou$#discardPour supprimer le message. L'en-tête est traité comme un champ structuré, de sorte que les commentaires (entre parenthèses) sont supprimés avant le traitement, sauf si le deuxième format $>+ est utilisé.
HMessage-Id: $>CheckMessageId
SCheckMessageId
R<$+@$+> $@OK
R$* $#error $: Illegal Message-Id headerRefuserait tout en-tête de message contenant un en-tête Message-Id: de l'une des formes suivantes:
Message-Id: <>
Message-Id: some text
Message-Id: <legal test@domain> extra textEn-têtes de message dans le fichier sendmail.cf et le fichier submit.cf
Les lignes du fichier de configuration commençant par une lettre majusque Hdéfinissent le format des en-têtes utilisés dans les messages. Le format de laHCommande:
H[?MailerFlags?]FieldName: ContentLes paramètres de variable sont définis comme suit:
| Paramètre | Définition |
|---|---|
| MailerFlags | Détermine si laHEst utilisée. Ce paramètre est facultatif. Si vous fournissez ce paramètre, encerclez-le? (points d'interrogation). Si le mailer requiert la zone définie par cette ligne de contrôle (comme indiqué dans la zone des indicateurs de la définition de mailer),HLa ligne de contrôle est incluse lors du formatage de l'en-tête. Sinon, leHLa ligne de contrôle est ignorée. |
| FieldName | Contient le texte affiché comme nom de la zone dans les informations d'en-tête. Les noms de zone types incluent:From:,To:etSubject:. |
| Content | Définit les informations qui s'affichent en suivant le nom de la zone. En général, les macros indiquent ces informations. |
Ces lignes d'exemple proviennent d'un fichier de configuration classique:
| Exemple | Signification |
|---|---|
| H?P?Return-Path: <$g> | Définit une zone appeléeReturn-PathQui affiche le contenu de la macro $g (adresse de l'expéditeur par rapport au destinataire). :NONE.?P?Portion indique que cette ligne n'est utilisée que si le mailer utilise l'indicateur P (le mailer requiert unReturn-Path). L'en-tête est généré uniquement si le mailer a le drapeau indiqué. Si l'en-tête apparaît dans le message d'entrée, il est transmis sans changement. |
HReceived: $?sfrom $s $.by $j ($v/$Z) id $i;
$b |
Définit une zone appelée Received. Cette zone inclut:
|
Option de définition d'objet
Il existe plusieurs options globales qui peuvent être définies à partir d'un fichier de configuration. La syntaxe de cette ligne est la suivante:
O option=value
Cette option définit l'option égal sur Valeur. Les options prises en charge sont répertoriées dans le tableau suivant.
| Option | Descriptif |
|---|---|
| AliasFile=spec, spec, ... | Indiquez le (s) fichier (s) d'alias possible. Chaque spécification doit être au format Classe:: fichier , où Classe: est facultatif et par défaut, Implicite s'il n'est pas inclus. En fonction de la façon dont Sendmail est compilé, les classes valides sont les suivantes:
Si une liste de spécifications est fournie, Sendmail les recherche dans l'ordre. |
| AliasWait=délai d'attente | Attend jusqu'à time-out (unités par défaut en minutes) qu'une entrée @:@ existe dans la base de données d'alias avant de démarrer. S'il n'apparaît pas dans l'intervalle de temps imparti et que l'option AutoRebuildAliases est également activée, reconstruisez la base de données. Sinon, émetcas un avertissement. |
| AllowBogusHELO | Autorise les commandes HELO SMTP qui n'incluent pas de nom d'hôte. La définition de cette valeur enfreint la section RFC 1123 5.2.5, mais elle est nécessaire pour interopérer avec plusieurs clients SMTP. S'il y a une valeur, elle est encore vérifiée pour sa légitimité. |
| BlankSub =c | Définit le caractère de substitution vide sur C. Les espaces non cotés dans les adresses sont remplacés par ce caractère. S'il n'est pas défini, il prend par défaut un espace et aucun remplacement n'est effectué. |
| CheminTCP | Chemin d'accès au répertoire avec les certificats d'AC. |
| Fichier CACERTFile | Dossier contenant un certificat de CA. |
| CheckAliases | Validez le RHS des alias lors de la régénération de la base de données d'alias. |
| Intervalledu point de contrôle=N | Définit l'intervalle entre les points de contrôle de la file d'attente et toutes les adresses N envoyées. S'il n'est pas spécifié, la valeur par défaut est 10. Si votre système tombe en panne lors de la distribution à une liste volumineuse, cela empêche la retransmission à tous les destinataires sauf les derniers. |
| Facteur de classe=fact | Le Faitindiqué ou est multiplié par la classe de message et soustrait de la priorité. La classe de message est déterminée par la zone Priorité: dans l'en-tête utilisateur et les lignes P dans le fichier de configuration. Les messages avec Priorité: plus élevé seront favorisons. S'il n'est pas spécifié, la valeur par défaut est 1800. |
| ClientCertFile | Fichier contenant le certificat du client. Ce certificat est utilisé lorsque Sendmail agit en tant que client. |
| ClientPortOptions = options | Définit les options SMTP du client. Les options sont des paires Clé=valeur séparées par des virgules. Les clés connues sont les suivantes:
|
| ClientKeyFile | Fichier contenant la clé privée appartenant au certificat client. |
| ColonOkInAddr | Si la valeur est définie, les deux points sont acceptables dans les adresses électroniques, par exemple:
Si ce n'est pas le cas, les deux points indiquent le début d'une construction de groupe RFC 822, illustré ci-dessous:
Les deux-points en double sont toujours acceptables, par exemple dans
Et l'imbrication de routeaddr est comprise, par exemple:
Cette option prend par défaut la valeur |
| Taille du cache de connexion=N | N est le nombre maximal de connexions ouvertes qui seront mises en cache à la fois. S'il n'est pas spécifié, la valeur par défaut est 1. Cela retarde la fermeture de la connexion en cours jusqu'à ce que l'appel de sendmail se connecte à un autre hôte ou qu'il s'arrête. La définition de la valeur 0 entraîne la fermeture immédiate des connexions. Etant donné que cela consomme des descripteurs de fichier, le cache des connexions doit rester petit: 4 est un maximum pratique. |
| ConnectionCacheTimeout =time-out | Délai d'attente est la durée maximale d'inactivité d'une connexion en cache. Si cette heure est dépassée, la connexion est immédiatement fermée. Cette valeur doit être faible: 10 minutes est un maximum pratique ; la valeur par défaut est 5 minutes. Avant que sendmail utilise une connexion mise en cache, il envoie toujours une commande RSET pour vérifier la connexion. En cas d'échec, la connexion est réouverte. Cela permet de garder la fin de l'échec si l'autre extrémité se termine. |
| ConnectOnlyTo=adresse | Peut être utilisé pour remplacer l'adresse de connexion à des fins de test. |
| Taux d'étranglement de la connexion=N | Si cette option est définie, elle n'autorise pas les connexions de démon entrantes N au cours d'une seconde période. Ceci est destiné à aplatide les pics et à permettre le contrôle de la charge moyenne à couper. S'il n'est pas spécifié, la valeur par défaut est 0 (aucune limite). |
| Nom de la prise de contrôle=nom | Définit le nom du socket de contrôle pour la gestion des démons. Un démon Sendmail en cours d'exécution peut être contrôlé via ce socket nommé. Les commandes disponibles sont: Aide, Redémarrer, Arrêtet Statut. La commande Statut renvoie le nombre actuel d'enfants de démons, le nombre maximal d'enfants de démon, les blocs d'espace disque libres du répertoire de file d'attente et la moyenne de charge de la machine exprimée sous la forme d'un entier. Si ce n'est pas le cas, aucun socket de contrôle ne sera disponible. |
| Options du port démon=options | Définissez les options SMTP du serveur. Chaque instance de DaemonPortOptions conduit à un socket entrant supplémentaire. Les options sont des paires Clé=valeur . Les clés connues sont les suivantes:
|
| Options du port démon '=options cont. |
|
| DefaultAuthInfo | Nom de fichier contenant les informations d'authentification par défaut pour les connexions sortantes. Ce fichier doit contenir l'ID utilisateur, l'ID autorisation, le mot de passe (texte en clair) et le domaine à utiliser sur des lignes distinctes et ne doit être lisible que par la racine (ou l'utilisateur sécurisé). Si aucun domaine n'est spécifié, $j est utilisé. |
| DefaultCharSet=jeude caractères | Lorsqu'un message contenant des caractères de 8 bits, mais qui n'est pas au format MIME, est converti en MIME (voir l'option EightBitMode ), un jeu de caractères doit être inclus dans l'en-tête Content-Type :. Ce jeu de caractères est normalement défini à partir de la zone Jeu de caractères = du descripteur de courrier. Si ce n'est pas le cas, la valeur de cette option est utilisée. Si cette option n'est pas définie, la valeur unknown-8bit est utilisée. |
| Taille du tampon du fichier de données=seuil | Définit Seuil en octets avant qu'un fichier de données de file d'attente basé sur la mémoire devienne basé sur le disque. La valeur par défaut est 4096 octets. |
| Goutte d'eau=fichier | Définit l'emplacement du fichier dead.letter à l'échelle du système, précédemment codé en dur dans /usr/tmp/dead.letter. Si cette option n'est pas définie, sendmail ne tentera pas d'enregistrer dans un fichier dead.letter à l'échelle du système au cas où il ne peut pas envoyer le courrier à l'utilisateur ou au maître du courrier. Au lieu de cela, il va renommer le fichier Qf . |
| DefaultUser=utilisateur:groupe | Définissez l'ID utilisateur par défaut pour les expéditeurs sur Utilisateur: groupe. Si group est omis et que user est un nom d'utilisateur (par opposition à un ID utilisateur numérique), le groupe par défaut répertorié dans le fichier /etc/passwd de cet utilisateur est utilisé comme groupe par défaut. Utilisateur et Groupe peuvent être des valeurs numériques. Les courriers sans l'indicateur S dans la définition du mailer s'exécuteront en tant qu'utilisateur. S'il n'est pas spécifié, la valeur par défaut est 1:1. La valeur peut également être indiquée en tant que nom d'utilisateur symbolique. |
| Mode de livraison=x | Livraison en mode X. Les modes juridiques sont les suivants:
Remarque: Pour des raisons internes, I ne fonctionne pas si un milter est activé qui peut rejeter ou supprimer des destinataires. Dans ce cas, le mode est remplacé par B.
|
| DialDelay=temps de sommeil | Les connexions réseau à la demande peuvent voir des délais d'attente si une connexion est ouverte avant la configuration de l'appel. Si cette valeur est définie sur un intervalle et qu'une connexion s'est établie sur la première connexion en cours de tentative, Sendmail va dormir pendant ce temps et réessayer. Cela devrait donner à votre système le temps d'établir la connexion à votre fournisseur de services. La valeur par défaut des unités étant les secondes, DialDelay=5 utilise un délai de cinq secondes. S'il n'est pas spécifié, la valeur par défaut est 0 (aucune nouvelle tentative). |
| DontBlameSendmail =option, option,... | Afin d'éviter toute tentative de fissuration provoquée par des fichiers et des répertoires de type world-and group-inscriptible, Sendmail effectue un contrôle paranoïaque lors de l'ouverture de la plupart de ses fichiers de support. Toutefois, si un système doit être exécuté avec un répertoire /etc inscriptible, cette vérification doit être désactivée. Notez que la mise hors tension de cette vérification rendra votre système plus vulnérable aux attaques. Les arguments sont des options individuelles qui désactivez la vérification:
|
|
|
|
|
|
|
|
|
Sécurité est la valeur par défaut. Les détails de ces indicateurs sont décrits ci-dessus. L'utilisation de cette option n'est pas recommandée. |
|
| DontExpandCnames | Les normes disent que toutes les adresses de l'hôte utilisées dans un message doivent être entièrement canoniques. Par exemple, si votre hôte est nommé Cruft.Foo.ORG et possède également l'alias FTP.Foo.ORG, le nom Cruft.Foo.ORG doit être utilisé à tout moment. Cette valeur est appliquée lors de la canonisation du nom d'hôte ($ [ ... $ ] lookups). Si cette option est définie, les protocoles seront ignorés et le mauvais nom sera utilisé. Cependant, l'IETF se dirige vers le changement de cette norme, de sorte que le comportement peut devenir acceptable. Veuillez noter que les hôtes en aval peuvent encore réécrire l'adresse pour être le vrai nom canonique. |
| DontInitGroups | Si ce paramètre est défini, Sendmail évitera d'utiliser l'appel Initgroups (3) . Si vous exécutez NIS, cela entraîne une analyse séquentielle de la mappe groups.byname , ce qui peut entraîner une surcharge de votre serveur NIS dans un domaine de grande taille. Le coût de ceci est que le seul groupe trouvé pour les utilisateurs sera leur groupe principal (celui du fichier de mots de passe), ce qui rendra les permissions d'accès aux fichiers un peu plus restrictives. N'a aucun effet sur les systèmes qui n'ont pas de listes de groupes. |
| DontProbeInterfaces | Sendmail recherche généralement les noms de toutes les interfaces actives sur votre machine lorsqu'il démarre et ajoute leur nom à la classe $=w des alias d'hôte connus. Si vous avez un grand nombre d'interfaces virtuelles ou si vos recherches DNS inverses sont lentes, cela peut prendre beaucoup de temps. Cette option est désactivée. Cependant, vous devez être certain d'inclure tous les noms de variante dans la classe $=w par un autre mécanisme. |
| DontPruneRoutes | Sendmail tente d'éliminer les routes explicites inutiles lors de l'envoi d'un message d'erreur (comme indiqué dans RFC 1123 S 5.2.6). Par exemple, lors de l'envoi d'un message d'erreur à <@known1,@known2,@known3:user@unknown>, sendmail enlève @known1,@known2 afin de rendre la route aussi directe que possible. Toutefois, si l'option RR est définie, cette option est désactivée et le courrier est envoyé à la première adresse de la route, même si des adresses ultérieures sont connues. Cela peut être utile si vous êtes pris derrière un pare-feu. |
| DoubleBounceAddress = adresse d'erreur | Si une erreur se produit lors de l'envoi d'un message d'erreur, envoyez le rapport d'erreur à l'adresse indiquée. Il s'agit d'un Double rebond car il s'agit d'une erreur de rebond qui se produit lors de la tentative d'envoi d'une autre erreur. L'adresse est étendue au moment de la livraison. S'il n'est pas défini, la valeur par défaut est postmaster. |
| Article | Descriptif |
|---|---|
| EightBitMode = action | Définissez la gestion des données à huit bits. Il existe deux types de données à huit bits:
Trois opérations de base peuvent se produire:
Les actions possibles sont les suivantes :
Dans tous les cas, les données 8BITMIME correctement déclarées seront converties en 7BIT selon les besoins. |
| ErrorHeader = fichier-ou-message | Prépend les messages d'erreur avec le message indiqué. S'il commence par une barre oblique (/), il est supposé être le nom de chemin d'un fichier contenant un message, qui est le paramètre recommandé. Sinon, il s'agit d'un message littéral. Le fichier d'erreurs peut contenir le nom, l'adresse électronique et / ou le numéro de téléphone d'un maître de poste local qui pourrait fournir une assistance aux utilisateurs finaux. Si l'option est manquante ou nulle, ou si elle nomme un fichier qui n'existe pas ou qui n'est pas lisible, aucun message n'est imprimé. |
| ErrorMode=x | Disposer des erreurs à l'aide du mode X. Les valeurs de X sont les suivantes:
|
| .llbackMXhost=fallbackhost | S'il est spécifié, Fallbackhost agit comme une MX à priorité très faible sur chaque hôte. Ceci est destiné à être utilisé par les sites à faible connectivité réseau. Les messages non distribuables en raison d'une panne d'adresse temporaire, comme dans le cas d'une panne de DNS, sont également envoyés à l'hôte FallBackMX. |
| FallBackSmartHost=hostname | S'il est spécifié, le FallBackSmartHost est utilisé en dernier recours pour chaque hôte. |
| FastSplit | Si elle est définie sur une valeur supérieure à zéro (la valeur par défaut est une), elle supprime les recherches MX sur les adresses lorsqu'elles sont initialement triées, c'est-à-dire pour la première tentative de livraison. Cela se traduit généralement par un fractionnement de l'enveloppe plus rapide, à moins que les enregistrements MX ne soient facilement disponibles dans un cache DNS local. |
| ForkEachJob | S'il est défini, exécute chaque travail exécuté à partir de la file d'attente dans un processus distinct. Utilisez cette option si vous n'êtes pas en mémoire, car la valeur par défaut tend à consommer des quantités considérables de mémoire pendant le traitement de la file d'attente. |
| Chemin d'accès=chemin | Définit le chemin d'accès aux fichiers .forward des utilisateurs. La valeur par défaut est $z/.forward. Certains sites qui utilisent l'utilitaire de montage automatique peuvent préférer le remplacer par /var/forward/$u pour rechercher un fichier portant le même nom que l'utilisateur dans un répertoire système. Il peut également être défini sur une séquence de chemins séparés par deux points. Sendmail s'arrête au premier fichier qu'il peut ouvrir avec succès et en toute sécurité. Par exemple :recherche d'abord dans /var/forward/username , puis dans ~username/.forward, mais uniquement si le premier fichier n'existe pas. |
| Fichier d'aide=fichier | Indique le fichier d'aide pour SMTP. Si aucun nom de fichier n'est spécifié, helpfile est utilisé. |
| HoldExpensive | Si un mailer sortant est marqué comme étant coûteux, ne vous connectez pas immédiatement. Cela implique que la mise en file d'attente soit compilée, car elle dépend d'un processus d'exécution de file d'attente pour envoyer réellement le courrier. |
| Fichier Hosts=chemin | Indique le chemin d'accès à la base de données hosts, normalement /etc/hosts. Cette option est uniquement consultée lorsque Sendmail est une adresse de canonisation, puis uniquement lorsque Fichiers se trouve dans l'entrée de commutation de service Hôtes . En particulier, ce fichier n'est jamais utilisé lors de la recherche d'adresses hôte, qui est sous le contrôle de la routine Gethostbyname (3) du système. |
| Répertoire de l'état des hôtes=chemin | Définit l'emplacement des informations de statut d'hôte à long terme. Lorsque cette option est définie, les informations sur le statut des hôtes (par exemple, si l'hôte est arrêté ou n'accepte pas les connexions) seront partagées entre tous les processus Sendmail . Normalement, ces informations ne sont conservées que dans une seule file d'attente. Cette option requiert un cache de connexion d'au moins 1 pour fonctionner. Si l'option commence par un /de début, il s'agit d'un chemin d'accès absolu ; dans le cas contraire, elle est relative au répertoire de la file d'attente de messagerie. Une valeur suggérée pour les sites qui souhaitent un statut d'hôte persistant est .hoststat, qui est un sous-répertoire du répertoire de file d'attente. |
| IgnoreDots | Ignorez les points dans les messages entrants. Cette option est toujours désactivée lors de la lecture du courrier SMTP et, par conséquent, les points sont toujours acceptés. |
| LDAPDefaultSpec = spécification | Définit une spécification de mappe par défaut pour les mappes LDAP. La valeur ne doit contenir que des paramètres spécifiques à LDAP, tels que -h host -p port -d bindDN. Les paramètres seront utilisés pour toutes les mappes LDAP sauf si la spécification de mappe individuelle remplace un paramètre. Cette option doit être définie avant que les mappes LDAP ne soient définies. |
| Niveau du journal=n | Définissez le niveau de journalisation sur N. La valeur par défaut est 9. |
| Valeur Mxvalue | Définissez la macro X sur la valeur. Cette option est uniquement destinée à être utilisée à partir de la ligne de commande. L'indicateur -M est préféré. |
| MatchGECOS | Autoriser la correspondance partielle dans la zone GECOS . Si cet indicateur est défini et que les recherches de nom d'utilisateur habituelles échouent (c'est-à-dire qu'il n'y a pas d'alias avec ce nom et qu'un Getpwnam échoue), effectuez une recherche séquentielle dans le fichier de mots de passe pour une entrée correspondante dans la zone GECOS . Cela nécessite également que MATCHGECOS soit activé lors de la compilation. Cette option n'est pas recommandée. Remarque: L'appariement flou est effectué uniquement sur les modules NIS et sur les utilisateurs locaux du système.
|
| MaxAliasRecursion = N | N est la profondeur maximale de récursivité des alias. La valeur par défaut est 10. |
| MaxDaemonChildren = N | Si ce paramètre est défini, Sendmail refuse les connexions lorsqu'il a plus de N enfants traitant le courrier entrant ou les exécutions de file d'attente automatique. Cela ne limite pas le nombre de connexions sortantes. S'il n'est pas défini, il n'y a pas de limite au nombre d'enfants ; la moyenne de charge du système contrôle cela. Si le DeliveryMode (arrière-plan) par défaut est utilisé, sendmail peut créer un nombre presque illimité d'enfants (en fonction du nombre de transactions et des temps d'exécution relatifs de la réception et de la distribution du courrier). Si la limite doit être appliquée, un mode DeliveryMode autre que l'arrière-plan doit être utilisé. Si ce n'est pas le cas, il n'y a pas de limite au nombre d'enfants, c'est-à-dire que la moyenne de charge du système contrôle cela. |
| MaxHeadersLength = N | N est la longueur maximale de la somme de tous les en-têtes. Ceci peut être utilisé pour empêcher une attaque par déni de service. La valeur par défaut est sans limite. |
| MaxHopCount = N | Nombre maximal de noeuds. Les messages qui ont été traités plus de N fois sont supposés être dans une boucle et sont rejetés. La valeur par défaut est 25. |
| Taille maximale du message=N | Indiquez la taille maximale du message à annoncer dans la réponse ESMTP EHLO. Les messages de taille supérieure à N seront rejetés. |
| MaxMimeHeaderLength =N[/M] | Définit la longueur maximale de certaines valeurs de zone d'en-tête MIME pour les caractères N . Si M est spécifié, certains en-têtes qui prennent des paramètres utilisent M au lieu de N. Si M n'est pas spécifié, ces en-têtes utiliseront la moitié de N. Par défaut, ces valeurs sont 0, ce qui indique qu'aucune vérification n'est effectuée. |
| MaxQueueRunSize = N | N est le nombre maximal de travaux qui seront traités dans une seule file d'attente. S'il n'est pas défini, la taille n'est pas limitée. Si vous avez de très grandes files d'attente ou un intervalle d'exécution de file d'attente très court, cela peut être instable. Cependant, comme les N premiers travaux dans l'ordre du répertoire de la file d'attente sont exécutés (plutôt que les N travaux les plus prioritaires), cette valeur doit être la plus élevée possible pour éviter de perdre les travaux qui arrivent en retard dans le répertoire de la file d'attente. Remarque: Cette option limite également le nombre d'entrées imprimées par Mailq. En d'autres termes, si la valeur N MaxQueueRunSize est supérieure à zéro, seules N entrées sont imprimées par groupe de file d'attente.
|
| MaxRecipientsPerMessage =N | Nombre maximal de destinataires qui seront acceptés par message dans une transaction SMTP. S'il n'est pas établi, il n'y a pas de limite au nombre de bénéficiaires par enveloppe. Remarque: La définition de cette valeur trop faible peut interférer avec l'envoi de courrier à partir de MUAs qui utilisent SMTP pour la soumission initiale.
|
| MeToo | Envoyez-moi aussi, même si je suis dans une extension d'alias. Cette option est obsolète et sera supprimée d'une version ultérieure. |
| MinFreeBlocks = N | Définit au moins N blocs libres sur le système de fichiers qui contient les fichiers de file d'attente avant d'accepter le courrier électronique via SMTP. Si l'espace est insuffisant, Sendmail donne une réponse 452 à la commande COURRIER et invite l'expéditeur à réessayer ultérieurement. |
| MinQueueAge=âge | Ne traite pas les travaux en file d'attente qui se trouvent dans la file d'attente inférieure à l'intervalle de temps indiqué. Cela favorise la réactivité du système en traitant fréquemment la file d'attente sans taxer le système en essayant trop souvent des travaux. Les unités par défaut sont des minutes. |
| Caractères de la citation=s | Définit la liste des caractères qui doivent être placés entre guillemets s'ils sont utilisés dans un nom complet qui se trouve dans la partie phrase d'une syntaxe phrase <address> . La valeur par défaut est '.. Les caractères @,;:\()[] sont toujours ajoutés à cette liste. |
| NoRecipientAction | Action à effectuer lorsque vous recevez un message sans en-tête de destinataire valide, tel que
|
| OldStyleHeaders | Supposons que les en-têtes soient au format ancien avec des espaces délimités par des noms. Il s'agit en fait d'un algorithme adaptatif: si une adresse de destinataire contient une virgule, une parenthèse ou un crochet, on suppose que les virgules existent déjà. Si cet indicateur n'est pas sur, seules les virgules sont délimitées. Les en-têtes sont toujours en sortie avec des virgules entre les noms. La valeur par défaut est off. |
| OperatorChars = liste de caractères | Liste des caractères considérés comme des opérateurs, c'est-à-dire des caractères qui délimitent les jetons. Tous les caractères de l'opérateur sont des jetons par eux-mêmes ; les séquences de caractères non opérateur sont également des jetons. Les espaces blancs séparent les jetons mais ne sont pas des jetons eux-mêmes. Par exemple, AAA.BBB a trois jetons, mais AAA BBB en a deux. S'il n'est pas défini, OperatorChars prend par défaut la valeur .:@[]". De plus, les caractères "()<>,;" sont toujours des opérateurs. Notez que OperatorChars doit être défini dans le fichier de configuration avant les ensembles de règles. |
| PidFile=nom du fichier | Définit le fichier Nom_fichier du fichier pid. La valeur par défaut est PATHSENDMAILPID. Le nom de fichier est développé à l'aide d'une macro-instruction avant d'être ouvert. |
| PostmasterCopy =postmaster | Si cette option est définie, des copies des messages d'erreur seront envoyées à Postmaster. Seul l'en-tête du message ayant échoué est envoyé. Les erreurs résultant de messages ayant une priorité négative ne seront pas envoyées. Parce que la plupart des erreurs sont des problèmes d'utilisateur, ce n'est pas une bonne idée sur les grands sites et peut contenir des violations de la vie privée. L'adresse est étendue au moment de la livraison. La valeur par défaut est no postmaster copies. |
| PrivacyOptions=opt,opt,... | Définit les options de confidentialité. Il s'agit d'une façon d'insister sur une adhésion plus stricte au protocole SMTP. Les options peuvent être l'une des options suivantes:
|
| Option | Descriptif |
|---|---|
| Préfixe du titre du processus=chaîne | Préfixe le titre du processus affiché sur les listes Ps avec Chaîne. La chaîne sera traitée de la macro. |
| Répertoire de la file d'attente=dir | Utilisez le nom Rép comme répertoire de file d'attente. Pour utiliser plusieurs files d'attente, indiquez une valeur se terminant par un astérisque. Par exemple, la saisie de /var/spool/mqueue/q* utilisera tous les répertoires ou les liens symboliques vers les répertoires commençant par q dans /var/spool/mqueue en tant que répertoires de file d'attente. Ne modifiez pas la structure de répertoire de file d'attente lorsque sendmail est en cours d'exécution. |
| Facteur de file d'attente=facteur | Utilisez Facteur comme multiplicateur dans la fonction de mappe pour décider quand mettre en file d'attente des travaux au lieu de les exécuter. Cette valeur est divisée par la différence entre la moyenne de charge actuelle et la limite de charge moyenne (optionQueueLA ) pour déterminer la priorité maximale des messages qui seront envoyés. La valeur par défaut est 600000. |
| File d'attenteLA=LA | Lorsque la moyenne de la charge système dépasse LA, les messages de file d'attente ne sont pas envoyés en file d'attente. La valeur par défaut est 8 multipliée par le nombre de processeurs en ligne sur le système, si cela peut être déterminé. |
| QueueSortOrder=algorithme | Définit le fichier Algorithme utilisé pour le tri de la file d'attente. Seul le premier caractère de la valeur est utilisé. Les valeurs juridiques sont les suivantes:
|
| Délai d'attente=time-out | Ne pas utiliser. Utilisez Timeout.queuereturn. |
| RandFile | Nom du fichier contenant des données aléatoires ou le nom du socket si EGD est utilisé. Un préfixe obligatoire egd: ou file: spécifie le type. STARTTLS requiert ce nom de fichier si l'indicateur de compilation HASURANDOM n'est pas défini (voir /user/samples/tcpip/sendmail/README). |
| Options du résolveur=options | Définir les options du programme de résolution. Les valeurs peuvent être définies à l'aide de +Indicateur et effacé à l'aide de-Indicateur. Les indicateurs disponibles sont les suivants:
La chaîne
HasWildcardMX (sans + ou -) peut être spécifiée pour désactiver la mise en correspondance avec les enregistrements MX lors de l'exécution de canonicalisations de nom.Remarque: Dans les éditions précédentes, cette option indique que le serveur de noms doit répondre pour accepter les adresses. Ceci a été remplacé par un contrôle pour voir si la méthode DNS est listée dans l'entrée de commutation de service pour le service hosts.
|
| RrtImpliesDsn | Si cette option est définie, un en-tête ReturnReceipt-To: entraîne l'envoi de la demande d'un DSN à l'expéditeur de l'enveloppe, comme requis par RFC1891, et non à l'adresse indiquée dans l'en-tête. |
| Exécuter en tant qu'utilisateur=utilisateur | Le paramètre utilisateur peut être un nom d'utilisateur (recherché dans /etc/passwd) ou un ID utilisateur numérique. Chaque formulaire peut être :group joint, groupe peut être numérique ou symbolique. Si cette valeur est définie sur une valeur non nulle / non root, sendmail sera modifié pour cet ID utilisateur peu de temps après le démarrage. Cela évite une certaine classe de problèmes de sécurité. Toutefois, cela signifie que tous les fichiers .forward et :include: doivent être lisibles par l'utilisateur indiqué et que tous les fichiers à écrire doivent être accessibles en écriture par user. En outre, toutes les livraisons de fichiers et de programmes seront marquées comme non sûres, sauf si l'option DontBlameSendmail=NonRootAddrSafe est activée, auquel cas la livraison sera effectuée en tant qu'utilisateur. Elle est également incompatible avec l'option SafeFileEnvironment. En fait, cela peut ne pas ajouter beaucoup à la sécurité sur un système moyen, et peut en fait nuire à la sécurité, car d'autres autorisations de fichier doivent être assouplies. Cependant, cela peut être utile sur les pare-feu et autres endroits où les utilisateurs n'ont pas de comptes et le fichier d'alias est bien contraint. |
| Facteur destinataire=fact | Le Faitindiqué ou est ajouté à la priorité pour chaque destinataire, ce qui réduit la priorité du travail. Cette valeur pénalise les travaux avec un grand nombre de destinataires. La valeur par défaut est 30000. |
| RefuserLA =LA | Lorsque la moyenne de la charge système dépasse LA, refuse les connexions SMTP entrantes. La valeur par défaut est 12 multipliée par le nombre de processeurs en ligne sur le système, si cela peut être déterminé. |
| Facteur de réessai=fact | Faitou est ajouté à la priorité chaque fois qu'un travail est traité. Chaque fois qu'un travail est traité, sa priorité sera réduite par la valeur indiquée. Dans la plupart des environnements, cela devrait être positif, car les hôtes qui sont en panne peuvent être en panne depuis longtemps. La valeur par défaut est 90000. |
| SafeFileEnvironment = répertoire | Si cette option est définie, Sendmail effectue un appel Chroot (2) dans le répertoire indiqué avant de lancer un fichier. Si le nom de fichier spécifié par l'utilisateur commence par Rép, ce nom de chemin partiel sera supprimé avant l'écriture. Par exemple, si la variable SafeFileEnvironment est définie sur " /safe, les alias " /safe/logs/file et " /logs/file désignent en fait le même fichier. De plus, si cette option est définie, sendmail refusera de distribuer aux liens symboliques. |
| SaveFromLine | Enregistrez les lignes De à l'avant des en-têtes. On suppose qu'ils sont redondants et qu'ils sont rejetés. |
| SendMimeErrors | Si ce paramètre est défini, envoyez des messages d'erreur au format MIME (voir RFC2045 et RFC1344 pour plus de détails). Si elle est désactivée, Sendmail ne renvoie pas le mot clé DSN en réponse à un EHLO et ne fera pas le traitement de la notification de statut de distribution, comme décrit dans RFC1891. |
| ServerCertFile | Fichier contenant le certificat du serveur. Ce certificat est utilisé lorsque Sendmail agit en tant que serveur. |
| ServerKeyFile | Fichier contenant la clé privée appartenant au certificat serveur. |
| ServiceSwitchFile=nomdu fichier | Si votre système d'exploitation hôte a une abstraction de commutateur de service, ce service sera consulté et cette option est ignorée. Sinon, il s'agit du nom d'un fichier qui fournit la liste des méthodes utilisées pour implémenter des services particuliers. La syntaxe est une série de lignes, chacune d'entre elles étant une séquence de mots. Le premier mot est le nom du service, et les mots suivants sont des types de service. Les services que Sendmail consulte directement sont Alias et Hôtes. Les types de service peuvent être Dns, Nisou Fichiers. Le support approprié doit être compilé avant que le service puisse être référencé. Si ServiceSwitchFile n'est pas spécifié, il prend par défaut la valeur /etc/mail/service.switch Si ce fichier n'existe pas, le commutateur par défaut estLe fichier par défaut est /etc/mail/service.switch. |
| SevenBitInput | Enlever l'entrée de sept bits pour la compatibilité avec les anciens systèmes. Cela ne devrait pas être nécessaire. |
| SingleLineFromHeader | Si cette option est définie, les lignes De: qui comportent des nouvelles lignes imbriquées ne sont pas encapsulées sur une seule ligne. Il s'agit de contourner un bogue dans Lotus Notes qui ne peut apparemment pas comprendre les en-têtes RFC822 légalement enveloppés. |
| SingleThreadDelivery | Si elle est définie, une machine client ne tentera jamais d'ouvrir simultanément deux connexions SMTP à une machine serveur unique, même dans des processus différents. C'est-à-dire que si un autre Sendmail parle déjà à un hôte, un nouveau Sendmail n'ouvrira pas une autre connexion. Bien que cela réduit la charge sur l'autre machine, elle peut entraîner le retard du courrier. Par exemple, si un Sendmail envoie un message énorme, d'autres processus Sendmail ne pourront même pas envoyer de petits messages. En outre, il nécessite un autre descripteur de fichier (pour le fichier de verrouillage) par connexion, de sorte que vous devrez peut-être réduire l'option ConnectionCacheSize pour éviter d'être à court de descripteurs de fichiers par processus. Nécessite l'option HostStatusDirectory. |
| SmtpGreetingMessage =message | Indique le Message à imprimer lorsque le serveur SMTP démarre. La valeur par défaut est |
| StatusFile=fichier | Consigner les statistiques récapitulatives dans le fichier Fichiernommé. Si aucun nom de fichier n'est spécifié, statistics est utilisé. Si ce n'est pas le cas, aucune statistique récapitulative ne sera enregistrée. Ce fichier n'augmente pas en taille. Il peut être imprimé à l'aide du programme mailstats (8) . |
| SuperSafe | Vous devez toujours instancier le fichier de file d'attente, même si vous tentez une livraison immédiate. Sendmail instancie toujours le fichier de file d'attente avant de renvoyer le contrôle au client, quelles que soit les circonstances. Cela devrait toujours être défini. |
| ModeFichierTemp=mode | Indique le mode de fichier des fichiers de file d'attente. Il est interprété en octal par défaut. La valeur par défaut est 0600. |
| Timeout.type= délai d'attente | Définit les valeurs Délai d'exécution . Pour plus d'informations, voir Délais de lecture. |
| TimeZoneSpec = tzinfo | Définissez les informations de fuseau horaire local sur Bretzinfo. Si ce paramètre n'est pas défini, la variable d'environnement TZ est désactivée et la valeur par défaut du système est utilisée. Si défini mais null, la variable TZ de l'utilisateur est utilisée. Si la valeur est définie et non nulle, la variable TZ est définie sur cette valeur. |
| Utilisateur de confiance=utilisateur | Le paramètre utilisateur peut être un nom d'utilisateur (recherché dans /etc/passwd) ou un ID utilisateur numérique. Utilisateur de confiance pour la propriété de fichier et le démarrage du démon. Si défini, les bases de données d'alias générées et le socket de contrôle (si configuré) seront automatiquement la propriété de cet utilisateur. |
| TryNullMXList | Si ce système est le système best (c'est-à-dire, la préférence la plus basse) MX pour un hôte donné, ses règles de configuration doivent détecter cette situation et traiter cette condition spécialement en réacheminant le courrier vers un flux UUCP, en le traitant comme local, etc. Cependant, dans certains cas, comme dans le cas des pare-feu Internet, vous pouvez essayer de vous connecter directement à cet hôte comme s'il n'avait aucun enregistrement MX. La définition de cette option entraîne l'essai de sendmail . Malheureusement, les erreurs dans votre configuration sont susceptibles d'être diagnostiqués comme "hôte inconnu" ou "dépassement du délai de message" au lieu de quelque chose de plus significatif. Cette option n'est pas recommandée. |
| UnixFromLine = à partir de la ligne | Définit le format utilisé lorsque sendmail doit ajouter une ligne UNIX-style De , telle qu'une ligne commençant par From<space>user). La valeur par défaut est From $g $d. Ne le modifiez pas sauf si votre système utilise un format de boîte aux lettres différent. |
| UnsafeGroupWrites | Si ce paramètre est défini, les fichiers :include: et .forward qui sont inscriptible en groupe sont considérés comme étant dangereux, et ils ne pourront pas faire référence à des programmes ou écrire directement dans des fichiers. Les fichiers :include: et .forward inscriptible dans le monde sont toujours dangereux. |
| UserDatabaseSpec =udbspec | Spécification de la base de données utilisateur. |
| verbose | Exécuter en mode prolixe. Si cette option est définie, sendmail ajuste les options HoldExpensive et DeliveryMode de sorte que tout le courrier soit distribué en un seul travail afin que vous puissiez voir l'intégralité du processus de distribution. L'option Verbose ne doit jamais être définie dans le fichier de configuration ; elle est uniquement destinée à l'utilisation de la ligne de commande. |
| XscriptFileBufferSize =seuil | Définit Seuil en octets, avant qu'un fichier de script de file d'attente basé sur la mémoire ne devienne basé sur le disque. La valeur par défaut est 4096 octets. |
Toutes les options peuvent être spécifiées sur la ligne de commande à l'aide de l'indicateur -O ou -o , mais la plupart d'entre elles permettent à Sendmail de renoncer à ses autorisations setuid. Les options qui ne provoquent pas ce phénomène sont SevenBitInput, EightBitMode, MinFreeBlocks, CheckpointInterval, DeliveryMode, ErrorMode, IgnoreDots, SendMimeErrors, LogLevel, OldStyleHeaders, PrivacyOptions, SuperSafe, Verbose, QueueSortOrder, MinQueueAge, DefaultCharSet, DialDelay, NoRecipientAction, ColonOkInAddr, MaxQueueueRunSize, SingleLineFromHeader et AllowBogusHELO. En fait, les PrivacyOptions données sur la ligne de commande sont ajoutées à celles déjà spécifiées dans le fichier de configuration et ne peuvent pas être réinitialisées. En outre, M (définition de macro) lors de la définition des macros R ou S est également considéré comme sûr.
P-Définitions de priorité
Pname=numLorsque le nom est trouvé dans une zone "Precedence:", la classe de message est définie sur num. Des nombres plus élevés ont une priorité plus élevée. Les nombres inférieurs à zéro ont la propriété spéciale que si une erreur se produit pendant le traitement, le corps du message ne sera pas renvoyé ; on s'attend à ce qu'il soit utilisé pour le courrier "en vrac", par exemple par l'intermédiaire de listes de diffusion. La priorité par défaut est zéro. Par exemple, la liste des précédents par défaut est:
- Pfirst-class=0
- Pspecial-delivery=100
- Plist=-30
- Pbulk=-60
- Pjunk=-100
V-Niveau de version de configuration
Pour assurer la compatibilité avec les anciens fichiers de configuration, la ligne V a été ajoutée pour définir la sémantique de base du fichier de configuration. Il s'agit de Pas comme support à long terme. Ces fonctions de compatibilité peuvent être supprimées dans les versions ultérieures.
Les fichiers de configuration "anciens" sont définis en tant que niveau de version un.
Les deux fichiers de niveau de version prennent les modifications suivantes:
- La canonisation du nom d'hôte ($ [ ... $ ]) ajoute un point si le nom est reconnu. Cela donne au fichier de configuration un moyen de déterminer si une correspondance s'est produite. Cette commande initialise la mappe hôte avec -a. . Vous pouvez le réinitialiser à autre chose en déclarant la mappe de manière explicite.
- L'extension du nom d'hôte par défaut est cohérente pendant le traitement. Les configurations de niveau 1 ont désactivé l'extension de domaine pendant certains points du traitement en ajoutant le nom de domaine local. Les deux configurations de niveau de version incluent un point de fin pour indiquer que le nom est déjà canonique.
- Les noms locaux qui ne sont pas des alias sont transmis via une nouvelle règle distinguée cinq. Ceci peut être utilisé pour ajouter un relais local. Cela peut être évité en résolvant le nom local en utilisant le symbole @ comme préfixe (par exemple,
@vikki). Quelque chose qui se résout en un programme de messagerie local et un nom d'utilisateurvikkisera transmis via le jeu de règles cinq, mais un nom d'utilisateur@vikkiaura le préfixe @ supprimé, ne sera pas transmis via le jeu de règles cinq, mais sera traité comme dans l'exemple précédent. L'exception est que cela peut être utilisé pour implémenter une politique dans laquelle le courrier envoyé à vikki est géré par un concentrateur central, mais le courrier envoyé à vikki@localhost est distribué directement.
Les trois fichiers de niveau de version permettent # commentaires lancés sur toutes les lignes. Les exceptions sont les barres obliques inversées # et la syntaxe $# .
Les quatre fichiers de niveau de version sont équivalents aux fichiers de niveau trois.
Les fichiers de niveau 5 modifient la définition par défaut de $w pour être le premier composant du nom d'hôte.
Les fichiers de configuration de niveau de version six changent plusieurs options de traitement local (c'est-à-dire l'aliasing et la correspondance de l'adresse commençant par le | caractère) vers les indicateurs mailer. Cela permet un contrôle très fin sur le traitement local spécial. Les six fichiers de niveau de version peuvent également utiliser des noms d'option longs. L'option ColonOkInAddr (qui autorise les deux-points dans la partie locale de l'adresse) est activée par défaut dans les fichiers de configuration dont le numéro de version est inférieur. Le fichier de configuration nécessite des "informations" supplémentaires pour gérer correctement la construction du groupe RFC 822.
Les fichiers de configuration de niveau 7 utilisent de nouveaux noms d'option pour remplacer les anciennes macros.
| Option | Ancienne macro |
|---|---|
| $e est devenu | SmtpGreetingMessage |
| $1 est devenu | UnixFromLine |
| $o est devenu | OperatorChars |
Avant la version 7, l'indicateur F=q (utilisez la valeur de retour 250 au lieu de 252 pour les commandes VRFY SMTP) a été supposé.
Les huit fichiers de configuration de niveau de version permettent à $# du côté gauche des lignes de jeu de règles.
Les fichiers de configuration de niveau 9 autorisent les parenthèses dans les ensembles de règles, ce qui signifie qu'ils ne sont pas traités comme des commentaires et sont supprimés.
La ligne V peut avoir une variable /fournisseur facultative pour indiquer que le fichier de configuration utilise des modifications spécifiques au fournisseur. Vous pouvez utiliser/BerkeleyPour indiquer que le fichier utilise le dialecte Sendmail de Berkeley.
K-Déclaration de fichier de clés
Kmapname mapclass argumentsLe nom de mappe est le nom par lequel cette mappe est référencée dans les règles de réécriture. La classe de mappe est le nom d'un type de mappe ; ils sont compilés dans Sendmail. Les arguments sont interprétés en fonction de la classe ; en général, il y aurait un seul argument désignant le fichier contenant la carte.
$( map key $@ arguments $: default $)Où l'un ou l'autre des arguments ou la partie par défaut peut être omis. Les arguments $ @ peuvent apparaître plusieurs fois. La clé indiquée et les arguments sont transmis à la fonction de mappage appropriée. Si elle renvoie une valeur, elle remplace l'entrée. S'il ne renvoie pas de valeur et que la valeur par défaut est spécifiée, la valeur par défaut remplace l'entrée. Sinon, l'entrée reste inchangée.
R$- ! $+ $: $(uucp $1 $@ $2 $: %1 @ %0 . UUCP $)decvax %1@ %0.DEC.COM
research %1@%0.ATT.COM
$(host hostname$)$[hostname$]Il existe de nombreuses classes définies.
| Classe | Descriptif |
|---|---|
| dbm | Recherches de base de données à l'aide de la bibliothèque ndbm(3) . Sendmail doit être compilé avec NDBM défini. |
| Btree | Recherches dans la base de données à l'aide de l'interface btree de la bibliothèque Berkeley DB. Sendmail doit être compilé avec NEWDB défini. |
| hachage | Recherches dans la base de données à l'aide de l'interface de hachage de la bibliothèque Berkeley DB. Sendmail doit être compilé avec NEWDB défini. |
| NIS | Recherches NIS. Sendmail doit être compilé avec NEWDB défini. |
| ldap | Recherches d'annuaire LDAP X500 . Sendmail doit être compilé avec LDAPMAP défini. La mappe prend en charge la plupart des arguments standard et des arguments de ligne de commande du programme Ldapsearch . Par défaut, si une requête unique correspond à plusieurs valeurs, seule la première valeur sera renvoyée sauf si l'indicateur de mappe -z (séparateur de valeurs) est défini. De plus, l'indicateur de mappe -1 traite une déclaration de valeurs multiples comme s'il n'y avait pas de correspondance. |
| Ldapx | Recherches d'annuaire LDAP X500 . Sendmail doit être compilé avec LDAPMAP défini. La mappe prend en charge la plupart des arguments standard et des arguments de ligne de commande du programme Ldapsearch . |
| Texte | Recherches du fichier texte. Le format du fichier texte est défini par les indicateurs -k (numéro de zone de clé), -v (numéro de zone de valeur) et -z (délimiteur de zone). |
| stab | Recherches de tables de symboles internes. Utilisé en interne pour l'alias. |
| implicite | Really devrait être appelé "alias". Cette valeur est utilisée pour obtenir les recherches par défaut des fichiers d'alias, et est la valeur par défaut si aucune classe n'est spécifiée pour les fichiers d'alias. |
| USER | Recherche des utilisateurs à l'aide de getpwnam(3). L'indicateur -v peut être utilisé pour indiquer le nom de la zone à renvoyer (bien que cela ne soit normalement utilisé que pour vérifier l'existence d'un utilisateur). |
| Hôte | Canonicalise les noms de domaine hôte. Etant donné un nom d'hôte, il appelle le serveur de noms pour rechercher le nom canonique de cet hôte. |
| Bestmx | Renvoie le meilleur enregistrement MX pour un nom d'hôte donné comme clé. La machine actuelle est toujours préférée. Par exemple, si la machine en cours est l'un des hôtes répertoriés comme l'enregistrement MX de préférence le plus bas, elle sera garantie à être renvoyée. Cela peut être utilisé pour déterminer si cette machine est la cible d'un enregistrement MX et que le courrier peut être accepté sur cette base. Si l'indicateur -z est indiqué, tous les noms MX sont renvoyés (séparés par le délimiteur donné). |
| séquence | Les arguments sur la ligne "K" sont une liste de mappes ; la mappe résultable recherche les mappes d'arguments dans l'ordre jusqu'à ce qu'elle trouve une correspondance pour la clé indiquée. Par exemple, si la définition de clé est:
Alors une recherche sur "seqmap" fait d'abord une recherche dans map1. Si c'est le cas, il revient immédiatement. Sinon, la même clé est utilisée pour map2. |
| syslog | La clé est consignée via syslogd(8). La recherche renvoie la chaîne vide. |
| commutateur | Tout comme la "séquence", sauf que l'ordre des cartes est déterminé par le commutateur de service. L'argument est le nom du service à examiner ; les valeurs du commutateur de service sont ajoutées au nom de la mappe pour créer de nouveaux noms de mappe. Par exemple, considérons la définition de clé:
Avec l'entrée de commutateur de service:
Cela provoque une requête sur la mappe "ali" pour rechercher les mappes nommées "ali.nis" et "ali.files" dans cet ordre. |
| Dequote | Supprimer les guillemets (") à partir d'un nom. Il n'effidera pas les barres obliques indues, et ne détiendra pas de guillemets si la chaîne qui en résulte contiendra une syntaxe non analysable (c'est-à-dire des erreurs de base telles que des angles d'angle déséquilibrés ; des erreurs plus sophistiquées telles que des hôtes inconnus ne sont pas vérifiées). L'intention est d'être utilisée lors de la tentative d'acceptation du courrier à partir de systèmes tels que DECnet qui cite régulièrement des syntaxe impaires telles que:
Une utilisation typique est probablement quelque chose comme:
Il faut prendre soin de prévenir les résultats inattendus ; par exemple,
Aura des citations retirées, mais le résultat n'est probablement pas ce qui était prévu. Heureusement, ces cas sont rares. |
| expression régulière | La définition de mappe sur la ligne K contient une expression régulière. Toute entrée de clé est comparée à cette expression à l'aide des routines d'expressions régulières POSIX regcomp (), regerr ()et regexec (). Consultez la documentation de ces routines pour plus d'informations sur la correspondance des expressions régulières. Aucune réécriture de la clé n'est effectuée si l'indicateur -m est utilisé. Sans elle, la clé est supprimée ou si -s est utilisée, elle est remplacée par les correspondances de sous-chaînes, délimitées par le $| ou la chaîne spécifiée avec l'indicateur -j . Les indicateurs disponibles pour la mappe sont les suivants:
L'indicateur -s peut inclure un paramètre facultatif qui peut être utilisé pour sélectionner les sous-chaînes dans le résultat de la recherche. Par exemple :-s1,3,4. |
| Programme | Les arguments de la ligne K sont le chemin d'accès à un programme et les paramètres initiaux à transmettre. Lorsque la mappe est appelée, la clé est ajoutée aux paramètres initiaux et le programme est appelé comme ID utilisateur / groupe par défaut. La première ligne de sortie standard est renvoyée comme valeur de la recherche. Cela a de nombreux problèmes de sécurité potentiels et de terribles performances. Elle ne doit être utilisée que lorsque cela est absolument nécessaire. |
| macro | Définissez ou désélectionnez une valeur de macro. Pour définir une macro, transmettez la valeur comme premier argument dans la recherche de mappe. Pour effacer une macro, ne transmettez pas d'argument dans la recherche de mappe. La mappe renvoie toujours la chaîne vide. Voici des exemples d'utilisation typique:
|
| Arith | Effectuez des opérations arithmétiques simples. L'opération est indiquée en tant que clé, actuellement
|
La plupart d'entre eux acceptent comme arguments les mêmes indicateurs facultatifs et un nom de fichier (ou un nom de mappe pour NIS ; le nom de fichier est la racine du chemin de la base de données, de sorte que .db ou une autre extension appropriée pour le type de base de données sera ajoutée pour obtenir le nom de base de données réel). Les indicateurs connus sont les suivants:
| Indicateur | Descriptif |
|---|---|
| -o | Indique que cette mappe est facultative. En d'autres mots, si elle ne peut pas être ouverte, aucune erreur n'est générée et Sendmail se comporte comme si la mappe existait mais était vide. |
| - N, -O | Si ni -N ni -O ne sont spécifiés, Sendmail utilise un algorithme d'adaptation pour décider s'il faut ou non rechercher des octets nulles à la fin des clés. Il commence par essayer les deux ; s'il trouve une clé avec un octet nul, il ne tente plus jamais sans un octet nul et vice versa. Si -N est spécifié, il ne tente jamais sans octet nul et si -O est spécifié, il ne tente jamais avec un octet nul. La définition de l'un de ces paramètres peut accélérer les correspondances mais n'est jamais nécessaire. Si -N et -O sont tous les deux spécifiés, Sendmail n'essaiera jamais de correspondance. En d'autres cas, tout semble échouer. |
| -a X | Ajoutez la chaîne X sur les correspondances réussies. Par exemple, la mappe hôte par défaut ajoute un point à des correspondances réussies. |
| -T X | Ajoutez la chaîne x sur les échecs temporaires. Par exemple, x serait ajouté si une recherche DNS est renvoyéeserver failedOu une recherche NIS n'a pas pu localiser un serveur. Pour plus d'informations, voir l'indicateur -t . |
| -f | Ne pliez pas les majuscules et les minuscules avant de regarder la clé. |
| -m | Correspondance uniquement (sans remplacer la valeur). Si vous vous souciez uniquement de l'existence d'une clé et non de la valeur (comme vous pouvez le faire lors de la recherche dans la mappe NIS "hosts.byname" par exemple), cet indicateur empêche la mappe de remplacer la valeur. Cependant, l'argument -a est toujours ajouté à une correspondance, et la valeur par défaut est toujours utilisée si la correspondance échoue. |
| -k Keycol | Nom de colonne de clé (pour NIS) ou numéro (pour les recherches de texte). |
| -v Valcol | Nom de colonne de valeur (pour NIS) ou numéro (pour les recherches de texte). |
| -z Délim | Délimiteur de colonne (pour les recherches de texte). Il peut s'agir d'un caractère unique ou d'une des chaînes spéciales "\n" ou "\t" pour indiquer respectivement la nouvelle ligne ou l'onglet. S'il est omis entièrement, le séparateur de colonnes est une séquence d'espace. |
| -t | Normalement, lorsqu'une mappe tente de faire une recherche et que le serveur échoue (par exemple, Sendmail n'a pas pu contacter un serveur de noms-il s'agit de Pas identique à une entrée introuvable dans la mappe), le message en cours de traitement est mis en file d'attente pour traitement ultérieur. L'indicateur -t désactive ce comportement, en laissant l'échec temporaire (serveur arrêté) agir comme s'il s'agissait d'un échec permanent (entrée introuvable). Il est particulièrement utile pour les recherches DNS, où un autre serveur de noms mal configuré peut causer des problèmes sur votre machine. Il faut prendre soin d'éviter de "dénoncer" le courrier qui serait réglé correctement si une autre tentative était faite. Une stratégie commune consiste à envoyer ce courrier à un autre serveur de messagerie. |
| -d | N'effectuez aucune recherche en mode de livraison différée. Cette option est définie par défaut pour la mappe Hôte . |
| -S Espacesub | Caractère à utiliser pour remplacer les espaces après une recherche de mappe réussie. Cela est particulièrement utile pour les mappes Regex et Syslog . |
| -q | Ne décitez pas la clé avant la recherche. |
| -A | Lors de la régénération d'un fichier d'alias, l'indicateur -A entraîne la fusion des entrées en double dans la version texte. Par exemple, les deux entrées suivantes:
Serait traité comme s'il s'agissait de l'entrée unique suivante:
|
Les indicateurs supplémentaires suivants sont présents dans la mappe LDAP uniquement:
| Indicateur | Descriptif |
|---|---|
| -r | Ne pas faire de demandes d'auto-poursuite. Sendmail doit être compilé avec -DLAP_RENVOIS pour utiliser ce drapeau. |
| -n | Extraire uniquement les noms d'attribut. |
| -r Deref | Définissez l'option de déréférencement d'alias sur l'un des éléments suivants: Jamais, Toujours, Rechercheou Trouver. |
| -s portée | Définissez la portée de la recherche sur l'un des éléments suivants: Base, Un (un niveau) ou Sous- (sous-arborescence). |
| -h hôte | Nom d'hôte du serveur LDAP. |
| -b Base | Base de recherche LDAP. |
| -p Port | Port de service LDAP. |
| -l Délai | Délai pour les requêtes LDAP. |
| -Z Sizelimit | Limite de taille (nombre de correspondances) pour les requêtes LDAP. |
| -j Nom_distinctif | Nom distinctif à utiliser pour se connecter au serveur LDAP. |
| -M Méthode | Méthode d'authentification auprès du serveur LDAP. Il doit s'agir de l'un des éléments suivants: LDAP_AUTH_NONE, LDAP_AUTH_SIMPLE, OR LDAP_AUTH_KRBV4. |
| -P Passwordfile | Fichier contenant la clé secrète de la méthode d'authentification LDAP_AUTH_SIMPLE ou le nom du fichier de ticket Kerberos pour LDAP_AUTH_KRBV4. |
| -1 | Force les recherches LDAP pour réussir uniquement si une seule correspondance est trouvée. Si plusieurs valeurs sont trouvées, la recherche est traitée comme si aucune correspondance n'a été trouvée. |
Kuucp dbm -o -N /usr/lib/uucpmapspécifie une mappe facultative nommée "uucp" de la classe "dbm" ; elle comporte toujours des octets null à la fin de chaque chaîne et les données se trouvent dans /usr/lib/uucpmap. { dir, pag }.
Commandes et opérandes
| Commande et opérande | Descriptif |
|---|---|
| C XWord1 Word2... | Définit la classe de mots pouvant être utilisée pour correspondre à la partie gauche des règles de réécriture. Les spécificateurs de classe (X) peuvent être n'importe lequel des lettres majuscules du jeu de caractères ASCII. Les minuscules et les caractères spéciaux sont réservés à l'utilisation du système. |
| D Valeur XValue | Définit une macro (X) et son Valeurassocié. Les spécificateurs de macro peuvent être n'importe lequel des lettres majuscules du jeu de caractères ASCII. Les minuscules et les caractères spéciaux sont réservés à l'utilisation du système. |
| F XFileName [Format ] | Lit les éléments de la classe (X) à partir de la variable FileName , à l'aide d'un spécificateur de format scanf facultatif. Le spécificateur de format ne contient qu'une seule spécification de conversion. Un numéro de classe est lu pour chaque ligne de la variable FileName . |
| H [?MFlags ?]HeaderName: HeaderTemplate | Définit le format d'en-tête que la commande Sendmail insère dans un message. Les lignes de continuation font partie de la définition. Le modèle HeaderTemplate est développé à l'aide d'une macro avant d'être inséré dans le message. Si Indicateurs est spécifié et qu'au moins l'un des indicateurs spécifiés est inclus dans la définition du mailer, cet en-tête est automatiquement écrit dans le message de sortie. Si l'en-tête apparaît dans le message d'entrée, il est écrit dans le message de sortie, quelle que soit la variable Indicateurs . |
| M Nom, [Zone=Valeur] | Defines a Mail program where the Nom variable is the name of the Mail program and Zone=Valeur pair defines the attributes of the mailer. |
| O X[Valeur] | Définit l'option sur la valeur de X. Si l'option est une option de valeur, vous devez également spécifier la variable Valeur . Les options peuvent également être sélectionnées à partir de la ligne de commande. Remarque: Pour les valeurs valides, voir Option de définition d'objet.
|
| P Nom = Numéro | Définit les valeurs pour laPrecedence:Zone d'en-tête. Lorsque les variables Nom sont trouvées dans un messagePrecedence:, la priorité du message est définie sur la variable Numéro . Des chiffres plus élevés indiquent des précédents. Les nombres négatifs indiquent que les messages d'erreur ne sont pas renvoyés. La valeur par défaut Numéro est 0. |
| R LeftHandSide RightHandSide Commentaires | Définit une règle de réécriture. Un ou plusieurs caractères de tabulation séparent les trois zones de cette commande. Si des espaces sont utilisés comme séparateurs de zone, l'option J doit être définie. L'option J permet aux espaces ainsi qu'aux onglets de séparer les côtés gauche et droit des règles de réécriture. L'option J permet de modifier les règles de réécriture à l'aide d'un éditeur qui remplace les onglets par des espaces. |
| S X | Définit le jeu de règles actuellement défini sur le nombre spécifié (X). Si une définition de jeu de règles est démarrée plusieurs fois, la nouvelle définition remplace l'ancienne. |
| T User1 User2... | Définit les ID utilisateur pour les administrateurs système. Ces ID sont autorisés à remplacer l'adresse de l'expéditeur à l'aide de l'indicateur -f . Plusieurs ID peuvent être spécifiés par ligne. |
Fichiers
| Article | Descriptif |
|---|---|
| /etc/mail/sendmail.cf | Indique le chemin d'accès au fichier sendmail.cf . |
| /etc/mail/submit.cf | Indique le chemin d'accès au fichier submit.cf . |
| /etc/passwd | Contient les attributs utilisateur de base. |
| /etc/mail/aliases | Contient des définitions d'alias pour la commande Sendmail . |