# Méthode de l'adresse de retour variable

La méthode de l'adresse de retour variable (en anglais Variable envelope return path VERP) est une technique utilisée par les listes de diffusion pour détecter automatiquement et enlever les adresses électroniques inaccessibles. Elle utilise une adresse de retour (champ Return-Path) qui est unique pour chaque adresse destinataire.

## Origine

Dans une liste de diffusion, le nombre d'adresse électroniques inaccessibles tend à augmenter avec le temps. Les adresses qui étaient valide peuvent devenir inutilisables parce que l'abonné a changé de fournisseur d'accès internet. Il se peut également que la boîte de messagerie de l'abonné soit pleine parce que l'adresse a été abandonnée par l'utilisateur.
Quand un message est envoyé à une liste de diffusion, le logiciel qui gère la liste envoie le courriel à toutes les adresses de la liste. La présence d'adresses invalides provoque des messages de rebond qui sont envoyés à l'administrateur de la liste. Si la liste n'est pas trop grande, l'administrateur pourra traiter ces messages et enlever manuellement les adresses invalides. Cette méthode n'est pas envisageable sur des grosses listes et nécessite une automatisation.
Malheureusement la plupart des messages ont été conçus historiquement pour être lus par des utilisateurs humains, et pas automatiquement par des logiciels. Ils ont tous plus ou moins la même structure (Le message envoyé par X à Y n'a pas pu être remis à son destinataire pour la raison Z) mais il y a tant de variations dans le format qu'il serait impossible pour un logiciel d'interpréter correctement ces messages. La RFC 1894 (rendue obsolète par la RFC 3464) défini un format standard pour régler ce problème, mais le support de cette recommandation est loin d'être universel. Toutefois plusieurs formats de bounce répandus (RFC 3464, qsbmf de qmail, microsoft DSN format for exchange) en implémentent une grande partie.
Microsoft Exchange peut parfois renvoyer un message de rebond sans donner d'informations sur l'adresse à laquelle le message qui a posé problème a été envoyé. Quand le destinataire existe mais refuse de recevoir le courriel, Exchange omet son adresse dans le message de rebond. Si un message est envoyé à martin@example.com et que le serveur a un utilisateur Martin Dupont dans son annuaire qui possède cette adresse électronique, Exchange envoie un message de rebond qui indique que Martin Dupont n'a pas pu être atteint mais sans y préciser l'adresse martin@example.com.
La méthode VERP est la seule méthode utilisable pour traiter correctement ces messages.

## Résolution du problème des messages de rebond

La partie complexe de la gestion de ces messages est de trouver l'adresse électronique de destination qui est la source du problème. Si le logiciel de gestion de la liste de diffusion voit un message de rebond à la suite d'une tentative d'envoi à l'adresse user@example.com, alors il n'a pas besoin d'examiner le reste des informations du message. Il suffit juste de compter les messages de rebond qui ont été reçus à la suite d'un envoi de courriel à user@example.com et de voir si ces rebonds sont trop fréquents. L'adresse électronique sera radiée de la liste si les erreurs d'envoi sont devenues trop fréquentes.
Alors que les messages de rebond sont hautement variables, il y a un aspect du message totalement prédictible:l'adresse à laquelle ils sont envoyés. La méthode VERP utilise ce fait en assignant une adresse de rebond unique pour chaque destinataire.
Le logiciel gestionnaire de la liste peut alors déterminer qu'un message de rebond reçu à l'adresse de retour X ne peut être dû qu'à un problème sur l'adresse Y, qui n'a plus besoin d'être retrouvée à partir du contenu du message.

## Historique de l'usage

Le premier utilisateur important qui a plaidé pour cette méthode et inventé l'expression VERP fut Daniel J. Bernstein. Il a ensuite mis cette idée en pratique dans les logiciels qmail MTA et ezmlm.

## Exemple

On considère la liste de diffusion wikipediens@example.net et l'abonné bob@example.org. Bob s'est inscrit à la liste mais a abandonné l'usage de son adresse à example.org qui est devenue invalide.

### Sans VERP

Sans VERP, le gestionnaire de liste de diffusion va envoyer un message avec les caractéristiques suivantes :
* envelope sender: wikipedians-owner@example.net
* recipient: bob@example.org
Le résultat sera un rebond, généré par le MTA de example.net ou de example.org dont les caractéristiques sont les suivantes :
* envelope sender : vide
* recipient : wikipediens-owner@example.net
* contents : example.org n'a pas pu remettre le message suivant à bob : [...]
On peut difficilement attendre du gestionnaire de liste de diffusion de comprendre le contenu de ce message de rebond. De plus s'il y a plusieurs inscrits dont le pseudonyme est bob il n'est pas possible de savoir lequel pose un problème.

### Avec VERP

Le caractéristique du message d'origine sont adaptées:
* envelope sender: wikipedians-owner+bob=example.org@example.net
* recipient: bob@example.org
Le message de rebond sera alors plusfacilement exploitable:
* envelope sender: vide
* recipient: wikipedians-owner+bob=example.org@example.net
* contents: example.org n'a pas pu remettre le message suivant à bob: [...]
L'adresse électronique qui pose un problème bob@example.org peut être retrouvée simplement à partir du champ recipient.
Ici la totalité de l'adresse électronique du destinataire a été utilisée (moyennant le remplacement du @ par un =) mais d'autres méthodes de marquage peuvent être utilisées.

## Inconvénients de la méthode

SMTP permet de combiner plusieurs transaction en une seule si le contenu des messages est considéré comme identique. Ainsi si plusieurs inscrits à une liste sont hébergés par le même serveur le message ne sera envoyé qu'une fois et stocké qu'une fois sur le serveur destinataire. L'adresse de retour différentes fait que le serveur considère chaque courriel envoyé comme différent ce qui augmente la charge des serveurs.
Un autre problème vient des MTA qui n'implémentent pas le standard SMTP complètement. Pour que VERP marche, il faut que le message de rebond soit envoyé à l'envelopper sender. Cette propriété est définie depuis les débuts du SMTP mais de nombreux agents envoient le message de rebond à l'adresse definie dans le champ from.
Les systèmes antispam par liste grise fonctionnent sans problème avec VERP si l'emetteur suit le format d'adresse mentionnée ci-dessus. Cependant certaines implémentation de la méthode utilisent un numéro ou une clé aléatoire pour l'adresse de retour. Les logiciels de liste grise ont du mal à catégoriser correctement le courriel et retardent la réception du courriel par le client.

## Logiciels qui implémentent VERP

* CiviCRM
* Courier Mail Server
* exim, using a specialized Router/Transport combination
* ezmlm
* GNU Mailman
* Mercury Mail Transport System
* mlmmj
* Mahara
* Mailchimp
* Moodle
* postfix
* qmail
* Sendmail, with a ruleset
* STEdb
* StrongMail
* Sympa
* Zimbra