Macros dans SPF

Explications sur Les macros (caractères à substituer) :

Les macros (ou placeholders), tels que %{i}, %{s}, %{h}, %{o}, etc. , sont des variables qui peuvent être utilisées dans les enregistrements SPF pour insérer dynamiquement des informations sur l'expéditeur de l'e-mail. Cependant, leur utilisation est déconseillée car ils peuvent compliquer la configuration SPF et la rendre plus difficile à dépanner.

Voici une liste complète de toutes les macros SPF possibles, avec des descriptions détaillées :

Macro Signification Exemple
s Sender: Adresse e-mail de l'expéditeur (la partie "From:") Si l'expéditeur est alice@example.net, %{s} devient alice@example.net
l local-part of sender : Nom de domaine local de la partie "From:" Si l'expéditeur est alice@example.net, %{l} devient example.net
o Domaine de l'expéditeur. Peut être différent de l avec SRS (Sender Rewriting Scheme) : si l'expéditeur alice@example.org est réécrit en string=alice=example.org@srs.example.net par exemple) Si SRS est utilisé et que l'expéditeur original est alice@example.org, %{o} peut devenir srs.example.net
d Nom de domaine de l'hôte qui envoie l'e-mail (domaine de l'enregistrement MX) Si l'e-mail est envoyé par mail.example.com, %{d} devient example.com
i Adresse IPv4 ou IPv6 du client qui envoie l'e-mail Si l'adresse IP est 192.0.2.1, %{i} devient 192.0.2.1
p Domaine de l'adresse IP du client Si l'adresse IP est 192.0.2.1, %{p} peut devenir example.net
h Nom d'hôte du client qui envoie l'e-mail Si le client est mail.example.com, %{h} devient mail.example.com
c Adresse IPv4 ou IPv6 du client (canonisée) Similaire à %{i}, mais peut avoir des différences de formatage (représentation abrégée et normalisée de l'IPV6)
r Nom d'hôte du serveur recevant l'e-mail Si le serveur de messagerie est mx.receiver.com, %{r} devient mx.receiver.com
t Timestamp actuel %{t} devient un nombre représentant le temps actuel.
v La version de la vérification SPF utilisée ("in-addr" pour IPv4, "ip6" pour IPv6) %{v} devient in-addr ou ip6

Modificateurs avancés pour une manipulation fine

La puissance de la notation étendue réside dans sa capacité à extraire et transformer des parties spécifiques des valeurs substituées. Voici les modificateurs :

  • Inversion (r) : Inverse l'ordre des parties d'une chaîne.
  • Minuscules (l) : Convertit en minuscules.
  • Majuscules (u) : Convertit en majuscules (moins courant).
  • Extraction de partie (chiffre) : Sélectionne une partie spécifique d'une chaîne délimitée par des points.
  • Exclure le dernier caractère (-) : Exclut le dernier caractère de la chaîne résultante.

Exemples concrets avec la notation étendue

Voici comment les modificateurs s'appliquent avec la notation %{...} :

1. Inversion de domaine

Pour obtenir le domaine inversé de l'expéditeur :

%{sr}

Si %{s} est "sousdomaine.exemple.com", %{sr} donne "com.exemple.sousdomaine".

2. Domaine du destinataire en minuscules

Pour forcer le domaine du destinataire en minuscules :

%{dl}

Si %{d} est "Exemple.COM", %{dl} donne "exemple.com".

3. Extraction de parties de domaine

Pour extraire des parties spécifiques du domaine de l'expéditeur :

%{s1}

Premier sous-domaine. Si %{s} est "sousdomaine.exemple.com", %{s1} est "sousdomaine".

%{s2}

Deuxième partie du domaine. Si %{s} est "sousdomaine.exemple.com", %{s2} est "exemple.com".

%{s3}

Troisième partie du domaine. Si `%{s}` est "sousdomaine.test.exemple.com", `%{s3}` est "exemple.com"

4. Manipulation de l'adresse IP

Ajouter un point à la fin de l'adresse IP de l'expéditeur:

%{i}.

Inverser l'adresse IP de l'expéditeur:

%{ir}

5. Exclure le dernier caractère

Exclure le dernier caractère du local-part:

%{l-}

Si le local-part de l'adresse email de l'expéditeur est "utilisateur", `%{l-}` sera "utilisate"

Il est important de noter que toutes les macros ne sont pas toujours disponibles ou fiables, car certaines dépendent du comportement du serveur de messagerie expéditeur.

Exemple concret pour %{s} et %{o} : Sous-domaines et délégation d'envoi

Supposons qu'une entreprise, "entreprise.com", utilise un sous-domaine, "newsletter.entreprise.com", pour envoyer ses newsletters via un fournisseur de service d'e-mailing (ESP). L'adresse e-mail de l'expéditeur est "info@newsletter.entreprise.com".

  • %{s} sera remplacé par newsletter.entreprise.com (le domaine MAIL FROM, utilisé dans l'adresse de l'expéditeur).
  • %{o} sera remplacé par entreprise.com (le domaine de l'organisation, c'est-à-dire le domaine principal de l'entreprise).