Déploiement des Signaux pour On-Premises : Intégration PowerMTA

Oiseau

30 août 2019

Email

1 min read

Déploiement des Signaux pour On-Premises : Intégration PowerMTA

Oiseau

30 août 2019

Email

1 min read

Déploiement des Signaux pour On-Premises : Intégration PowerMTA

Plongeons dans les détails de la configuration de PowerMTA pour SparkPost Signals.

Plongeons dans les détails de la configuration de PowerMTA pour SparkPost Signals. Vous allez avoir besoin de :

  • Un hôte pour exécuter la dernière version de PowerMTA – soit une nouvelle machine, soit une machine existante

  • Un compte SparkPost avec une permission de clé API pour « Événements entrants : Écrire » comme décrit ici

Nous allons configurer PowerMTA pour envoyer des événements à votre compte SparkPost, puis vous pourrez utiliser les éléments suivants :

Tout d'abord, installez (ou mettez à niveau) vers PowerMTA 5.0 r4 ou une version ultérieure, en suivant les instructions habituelles d'installation v5.0 qui sont assez simples. Ensuite, nous passerons en revue les étapes suivantes :

  • Configurer le connecteur PowerMTA vers SparkPost Signals

  • Configurer le suivi de l'engagement avec un domaine de suivi personnalisé

  • Sélectionner les flux de trafic PowerMTA à signaler à Signals

  • Tester que vos événements atteignent Signals

  • Revoir comment utiliser des noms significatifs qui apparaissent bien dans les rapports.

Nous couvrirons également d'autres aspects spécifiques de la configuration de PowerPMTA utilisés dans notre démo Signals :

  • Événements FBL (plaintes pour spam) et rebonds à distance (hors bande)

  • Configuration de l'injection, y compris DKIM

  • Configuration FBL et OOB

  • Configuration et nommage VirtualMTA (et comment cela apparaît dans vos rapports SparkPost Signals)

Enfin, il y a une « fonctionnalité bonus » avec un code pour s'assurer que les noms de vos campagnes sont compatibles avec les conventions de nom X-Job  de PowerMTA.

Configurer le connecteur PowerMTA

La configuration des Signals est décrite dans la section 10.1 du guide de l'utilisateur 5.0. Ici, nous commencerons avec « Use Case #2 », qui active les Signals pour tout le trafic de cet hôte PowerMTA, et active le suivi d'engagement de SparkPost.

# # SparkPost Signals # <signals> api-key ##ma clé API d'ingestion ici## upload-url https://api.sparkpost.com/api/v1/ingest/events log-verbose true min-free-space 1G engagement-tracking sparkpost # cela active le suivi des ouvertures et des clics dans PowerMTA customer-id 123 # Votre numéro de compte SparkPost ici </signals> enable-signals true

Voici ce que fait chaque attribut :

api-key

Ceci est unique à votre compte SparkPost, c’est la valeur que vous avez obtenue de SparkPost plus tôt.

upload-url

Cela doit correspondre à l'adresse de votre service API SparkPost, qu'il soit aux États-Unis ou dans l'UE. Pour plus d'informations, voyez ici. Les valeurs habituelles sont :

SparkPost (US) : https://api.sparkpost.com/api/v1/ingest/events

SparkPost UE :    https://api.eu.sparkpost.com/api/v1/ingest/events

log-verbose

Cette directive est facultative et, lorsqu'elle est activée, elle donne un peu plus d'informations dans le fichier pmta.log, ce qui peut être utile lors de la configuration pour confirmer que tout fonctionne correctement. Chaque minute, même lorsqu'il n'y a pas de trafic, vous verrez :

2019-07-26 11:47:57 Signals: 0 fichiers découverts

Avec du trafic, vous verrez quelque chose comme :

2019-07-26 11:50:57 Signals: sp1-0000000000003FBD.json découvert 2019-07-26 11:50:57 Signals: sp1-0000000000003FBD.json transféré avec succès. 2019-07-26 11:50:57 Signals: 1 fichier découvert, 1 fichier transféré avec succès

min-free-space

Cela informe PowerMTA du seuil d'espace disque auquel il doit commencer à supprimer les fichiers d'événements JSON de SparkPost les plus anciens pour faire de la place pour les nouveaux fichiers lorsque l'espace disque est limité.

enable-signals

Cela indique à PowerMTA de télécharger vers Signals, dans ce cas à l'échelle mondiale pour tout le trafic (plus d'informations ici, pour v5.0). Vous pouvez être plus sélectif quant aux flux de trafic que vous souhaitez télécharger si vous le souhaitez.

Vous pouvez également marquer un trafic PowerMTA particulier pour qu'il soit signalé comme appartenant à un sous-compte SparkPost – c'est une autre façon de distinguer un flux de trafic particulier d'un autre.

engagement-tracking, customer-id
La solution de suivi d'engagement de PowerMTA par défaut au domaine de suivi pour le service hébergé aux États-Unis de SparkPost. Vous spécifiez votre identifiant de client numérique SparkPost ; voici les instructions pour le trouver.

tracking-domain

Pour les comptes SparkPost UE, ajoutez la ligne suivante :

tracking-domain pmta.eu.spgo.io # ceci est le point de terminaison pour SparkPost UE

Domaine de suivi personnalisé

Si vous préférez utiliser votre propre domaine de suivi (c'est mieux du point de vue de la délivrabilité), faites ce qui suit :

  • Créez un domaine de suivi avec votre fournisseur DNS en créant un enregistrement CNAME. Ce sera généralement un sous-domaine de votre domaine de premier niveau, par exemple track.mycompany.com .

track.mycompany.com CNAME pmta.spgo.io # si vous avez un compte SparkPost US track.mycompany.com CNAME pmta.eu.spgo.io # si vous avez un compte SparkPost EU

Vous pouvez également utiliser des domaines de suivi HTTPS, bien que cela soit plus complexe (voir les étapes de configuration SparkPost ici).

  • Enregistrez le domaine de suivi dans votre compte SparkPost, et vérifiez-le. Attendez quelques minutes avant de faire cela, pour permettre à vos modifications DNS de se propager sur Internet, en fonction de votre fournisseur DNS.

  • Configurez PowerMTA pour utiliser ce domaine au lieu de celui par défaut, avec

tracking-domain yourdomain.com # Mettez votre propre domaine ici

Vous pouvez vérifier que vos e-mails livrés ont des « pixels de suivi » ajoutés et les liens enveloppés, en examinant les internes de l'e-mail (dans Gmail, utilisez le menu en haut à droite et choisissez « Afficher l'original »).

Show original option highlighted


Vous remarquerez les pixels de suivi au début et à la fin du HTML dans l'e-mail. Chaque lien HTML est également modifié pour avoir REF pointant vers le domaine de suivi.

HTML code highlighted


C'est tout ce dont vous avez besoin pour faire fonctionner SparkPost Signals avec le suivi d'engagement intégré de PowerMTA.

Empêcher des liens spécifiques dans votre e-mail html d'être suivis

Vous pouvez empêcher PowerMTA de suivre des liens spécifiques, en réglant l'attribut personnalisé data-msys-clicktrack à « 0 »  :

<a href="#" data-msys-clicktrack="0">Exemple</a>

PowerMTA ne contera pas le lien. Il supprimera également cet attribut avant de transmettre le message à votre destinataire.

Sélectionnez les flux de trafic PowerMTA à signaler à Signals

Vous pouvez sélectionner des signaux pour être actifs :

  • Globalement (c'est ce que nous avons utilisé dans l'exemple ci-dessus)

  • Pour certains MTAs virtuels et pas d'autres

  • Pour certains pools de MTAs virtuels et pas d'autres

  • Pour des adresses "Sender" ou "From" spécifiques relayées par PowerMTA, en combinaison avec les sélections de Virtual MTA / pool de Virtual MTA

Cette configuration est très puissante et est illustrée à travers une série de cas d'utilisation d'exemple (v5.0) dans le Guide de l'utilisateur.

Vous pouvez sélectionner des signaux pour être actifs :

  • Globalement (c'est ce que nous avons utilisé dans l'exemple ci-dessus)

  • Pour certains MTAs virtuels et pas d'autres

  • Pour certains pools de MTAs virtuels et pas d'autres

  • Pour des adresses "Sender" ou "From" spécifiques relayées par PowerMTA, en combinaison avec les sélections de Virtual MTA / pool de Virtual MTA

Cette configuration est très puissante et est illustrée à travers une série de cas d'utilisation d'exemple (v5.0) dans le Guide de l'utilisateur.

Vous pouvez sélectionner des signaux pour être actifs :

  • Globalement (c'est ce que nous avons utilisé dans l'exemple ci-dessus)

  • Pour certains MTAs virtuels et pas d'autres

  • Pour certains pools de MTAs virtuels et pas d'autres

  • Pour des adresses "Sender" ou "From" spécifiques relayées par PowerMTA, en combinaison avec les sélections de Virtual MTA / pool de Virtual MTA

Cette configuration est très puissante et est illustrée à travers une série de cas d'utilisation d'exemple (v5.0) dans le Guide de l'utilisateur.

Tester que vos événements atteignent Signals

Voici une vue de SparkPost Signals, connecté à PowerMTA. Vous pouvez voir que le score de santé varie.

Health score dashboard


Les noms de Campagne sont disponibles comme facettes de reporting, ainsi que Subaccount, IP Pool, Mailbox Provider, et Sending Domain.

En plus de regarder les journaux PowerMTA, vous pouvez vérifier que les données d'événements atteignent SparkPost en regardant l'écran d'Intégration Signals.

Signals integration screen

Dans votre écran de Recherche d'Événements SparkPost, vous devriez voir apparaître des événements dans quelques minutes. Cela inclura des événements d'Injection et de Livraison, ainsi que Bounce, et potentiellement Out-of-Band Bounce et des événements de Plainte Spam, si vous avez déjà configuré PowerMTA pour les gérer à votre place.
Si vous avez activé le Suivi d'Engagement, vous verrez également des événements open, initial_open, et click.

Utiliser des noms significatifs qui apparaissent bien dans les rapports

Configurer les noms de Pool VirtualMTA PowerMTA et les noms de Job pour qu'ils soient significatifs et lisibles par l'humain vaut vraiment la peine de le faire. Ceux-ci apparaissent directement dans vos facettes de SparkPost Signals et dans le rapport de synthèse.

Comme mentionné précédemment, vous n'avez pas besoin de créer ces pools dans votre compte SparkPost. SparkPost les récupère à partir de votre configuration PowerMTA.

Voici comment les termes de configuration PowerMTA se traduisent en termes SparkPost.

Terme PowerMTA / SparkPost Reports / SignalsRecipient Domain
(partie domaine du champ “rcpt” dans le fichier de comptabilité).Recipient DomainLa partie domaine de l'en-tête “Sender” ou “From” dans le message relayé par PowerMTA.
(partie domaine de “orig” dans le fichier de comptabilité).Sending DomainVirtualMTA (nom)—VirtualMTA Pool (nom)
(“vmtaPool” dans le fichier de comptabilité)IP Pool (nom)smtp-source-host a.b.c.d
(“dlvSourceIp” dans le fichier de comptabilité)Sending IP a.b.c.dJob (nom)
(“jobId” dans le fichier de comptabilité)Campaign ID (nom)—Template (nom)“Subaccount” n'est pas un concept natif de PowerMTA.

Cependant, PowerMTA peut étiqueter les VirtualMTAs, Virtual MTA Pools, ou les domaines Sender-or-From avec un ID de sous-compte à des fins de reporting SparkPost.

Subaccount ID (numéro)FBL (événement)Spam Complaint (événement)Remote Bounce (événement)Out-of-Band bounce (événement)

Configurer au moins une adresse smtp-source-host permet également à SparkPost d'identifier correctement l'adresse IP d'envoi, de sorte qu'elle apparaisse sur les événements d'injection et de livraison, ainsi que dans la vue du rapport de synthèse.

Les noms de Job sont configurés dans PowerMTA via un en-tête dans le message injecté. En plus de permettre un contrôle individuel des travaux (pause/reprise, etc.), ce qui est utile en soi, PowerMTA transmet les noms aux rapports de Signal SparkPost sous forme de “campaign ID”. Voir le Guide de l'utilisateur section v5.0 12.8 “Tracking a campaign in PowerMTA with a JobID”.

Il y a quelques précautions à prendre en compte concernant la dénomination des jobs. Bien que SparkPost (avec le format JSON et l'échappement JSON) permette des caractères comme <SPACE>  dans les noms de campagne, les en-têtes de courrier sont plus restrictifs. Les caractères valides autorisés dans l'en-tête X-Job  sont :

A-Za-z0-9!#$%&'()*+,-./:;<=>?@[\]^_{|}~ 

En d'autres termes, les caractères interdits incluent <SPACE>, les guillemets doubles “  et l'accent grave `. Si vous êtes habitué à travailler avec des noms de X-Job, cela ne sera pas surprenant, et vos noms de ID de campagne “fonctionneront” simplement sur les rapports SparkPost. Si, comme moi, vous avez appris SparkPost en premier, vous pourriez vouloir un outil pour garantir que vos valeurs X-Job sont sûres ; voir la fonction bonus à la fin de cet article.

Événements FBL (plaintes spam) et rebonds distants (hors bande)

PowerMTA peut recevoir et traiter les événements FBL (connu dans SparkPost sous le nom d'événements de plainte pour spam) et les rebonds distants (connu dans SparkPost sous le nom de rebonds hors bande, car la réponse revient quelque temps plus tard, plutôt que pendant la conversation SMTP).

Il y a des articles dans le forum de support Port25 sur comment configurer le Bounce Processor et le FBL Processor. Si vous êtes déjà un utilisateur de PowerMTA, vous avez probablement déjà cela.

Voici la configuration que j’ai faite pour une démo, basée sur ces articles et orientée vers l'hébergement de PowerMTA dans Amazon EC2.

Si vous êtes familier avec la configuration de PowerMTA dans ce domaine, vous pouvez passer cette partie, jusqu'à la prochaine ligne horizontale.

Configuration d'injection

Nous utiliserons le port 587 pour les messages injectés, qui viendront par Internet public depuis un autre hôte. Nous devons empêcher les mauvais acteurs de découvrir et d'abuser de ce service, donc nous appliquons l'authentification par nom d'utilisateur/mot de passe et TLS optionnel, similaire aux points de terminaison d'injection SMTP de SparkPost.

Nous voulons pouvoir envoyer des messages à partir de sources correctement authentifiées vers n'importe quelle destination. Nous voulons également un auditeur séparé sur le port 25 pour les réponses FBL et de rebond à distance qui ne nécessitent pas d'authentification.

# # Adresse(s) IP et port(s) sur lesquels écouter les connexions SMTP entrantes # smtp-listener 0.0.0.0:587 smtp-listener 0.0.0.0:25

Dans les déclarations suivantes <source> , nous utilisons l'authentification par nom d'utilisateur/mot de passe et TLS optionnel pour se défendre contre l'injection de messages malveillants. Nous établissons également des limites de taux sur les connexions faisant des tentatives de mot de passe échouées.

Votre configuration pourrait être différente ; par exemple, si vous avez un réseau privé entre l'injecteur et PowerMTA, vous n'aurez pas besoin d'authentification par mot de passe.

# Une règle source pour toutes les injections, internes ou externes. Appliquez l'authentification, sauf pour les rebonds et les FBLs # <source 0/0> log-connections false log-commands false # ATTENTION : verbeux ! juste pour dév log-data false # ATTENTION : encore plus verbeux ! smtp-service true # autorise le service SMTP smtp-max-auth-failure-rate 1/min allow-unencrypted-plain-auth false allow-starttls true rewrite-list mfrom </source> <source {auth}> always-allow-relaying yes # seulement si l'authentification réussit default-virtual-mta default process-x-job true </source>

La déclaration <source {auth}>  (voir ici. v5.0) s'applique une fois l'authentification passée. Ici, elle permet le relais vers l'avant, configure le groupe de MTAs virtuelles par défaut à utiliser et ajoute l'en-tête X-Job (qui sera rapporté par SparkPost Signals comme campaign_id).

La liste de réécriture mappe les messages injectés pour utiliser un domaine MAIL FROM spécifique (aussi nommé domaine de rebond ou Return-Path:).

# # Réécrire l'adresse MAIL FROM pour correspondre au domaine de rebond # <rewrite-list mfrom> mail-from *@pmta.signalsdemo.trymsys.net *@bounces.pmta.signalsdemo.trymsys.net </rewrite-list>

Ensuite, nous configurons notre configuration TLS et nom d'utilisateur / mot de passe SMTP, selon les recommandations actuelles.

# # Sécuriser le service entrant avec nom d'utilisateur, mot de passe et TLS. SMT 2020-06-15 # smtp-server-tls-certificate /etc/pmta/pmtasignalsdemo.pem smtp-server-tls-allow-tlsv1 false smtp-server-tls-allow-tlsv1.1 false smtp-server-tls-allow-tlsv1.2 true smtp-server-tls-allow-tlsv1.3 true # # Utilisateurs SMTP (authentifiés via SMTP AUTH) # <smtp-user SMTP_Injection> password ##METTEZ VOTRE MOT DE PASSE ICI## authentication-method password </smtp-user>

Nous pouvons vérifier que le TLS v1.0 (non sécurisé, déprécié) n'est pas accepté en utilisant mon outil de test SMTP préféré,  swaks.

swaks --server pmta.signalsdemo.trymsys.net --port 587 --to test@trymsys.net --from any@sparkpost.com --tls --tls-protocol tlsv1

Nous voyons :

*** Échec de démarrage TLS (connect(): error:00000000:lib(0):func(0):reason(0)) *** STARTTLS tenté mais échoué

De même pour –tls-protocol tlsv1_1.

Appliquons également la signature DKIM à nos messages sortants, car c'est une bonne pratique (j'ai suivi ces instructions pour configurer la clé).

# # DKIM # domain-key mypmta, pmta.signalsdemo.trymsys.net, /etc/pmta/mypmta.pmta.signalsdemo.trymsys.net.pem

FBL and OOB configuration

Maintenant .. enfin .. nous déclarons quels domaines spécifiques sont ouverts pour les réponses de rebond à distance et FBL. Nous ne voulons pas relayer ceux-ci n'importe où (pour prévenir les attaques backscatter), juste traiter ces réponses en interne.

# # Activer le traitement de Bounce et FBL sur des domaines spécifiques # relay-domain pmta.signalsdemo.trymsys.net relay-domain bounces.pmta.signalsdemo.trymsys.net relay-domain fbl.pmta.signalsdemo.trymsys.net <bounce-processor> deliver-unmatched-email no deliver-matched-email no <address-list> domain pmta.signalsdemo.trymsys.net domain bounces.pmta.signalsdemo.trymsys.net </address-list> </bounce-processor> <feedback-loop-processor> deliver-unmatched-email no deliver-matched-email no <address-list> domain fbl.pmta.signalsdemo.trymsys.net </address-list> </feedback-loop-processor>

Vous pouvez voir que j'ai configuré deux domaines de rebond, car je jouais avec l'utilisation/non-utilisation de la règle de réécriture mfrom .

Le domaine FBL est généralement enregistré auprès de services externes tels que Microsoft SNDS; voir cet article pour plus d'informations. Pour cette démo, les FBLs proviendront du Bouncy Sink, donc pas besoin de s'enregistrer.

Test du listener SMTP

Il est important de tester que votre écouteur SMTP exige une autorisation pour toutes les destinations générales, rejetant tous les messages qui ne sont pas spécifiquement adressés aux domaines FBL et de rebonds distants.

swaks --server pmta.signalsdemo.trymsys.net --port 25 --to test@strange.pmta.signalsdemo.trymsys.net --from any@sparkpost.com

La réponse, comme prévu, montre que le relais est refusé :

550 5.7.1 relais refusé pour le destinataire dans "RCPT TO:<test@strange.pmta.signalsdemo.trymsys.net>

(Fin de la description de la configuration de démonstration).

Configuration et nomination de VirtualMTA

Les PowerMTA VirtualMTAs (et les pools de VirtualMTA) sont des fonctionnalités puissantes pour gérer les flux de messages, et les fonctionnalités de rapport PowerMTA / SparkPost Signals fonctionnent mieux avec celles-ci actives.

# # Routez tout le trafic sortant à travers ce Virtual MTA / pool. # Déclarez ici l'adresse IP de livraison, afin que les événements d'injection de signaux SparkPost (alias "réception") # transportent l'attribut sending_IP correct # <virtual-mta mta1>     smtp-source-host 172.31.25.101 pmta.signalsdemo.trymsys.net </virtual-mta> <virtual-mta-pool default>     virtual-mta mta1     <domain *>         max-smtp-out    20       # max. connexions *par domaine*         bounce-after    4j12h    # 4 jours, 12 heures         retry-after     10m      # 10 minutes         dkim-sign       oui     </domain> </virtual-mta-pool>

Le paramètre virtual-mta-pool est signalé dans SparkPost comme "IP Pool", et est disponible comme une facette de rapport de SparkPost Signals (le menu déroulant sous les graphiques).

Health score dashboard


Le rapport récapitulatif montre également IP Pool comme une facette de rapport "Group By".

Summary report dashboard


Comme noté plus tôt dans cet article, configurer au moins une adresse smtp-source-host permet également à SparkPost d'identifier correctement l'adresse IP d'envoi, afin qu'elle apparaisse dans les événements d'injection et de livraison, ainsi que dans le rapport récapitulatif :

Summary report with the group by filter set to "Sending IP"

C’est tout ce dont vous avez besoin pour obtenir une intégration de base fonctionnant entre PowerMTA et SparkPost Signals. Vous trouverez l’exemple complet de fichier de config ici.

Avant de partir, voici la fonctionnalité bonus que j'ai mentionnée.

Bonus feature : X-Job name checking/filtering

Pour garantir que n'importe quelle chaîne de caractères est sécurisée pour être utilisée comme nom de PowerMTA X-Job, voici une simple fonction Python pour mapper tout caractère non sécurisé à un trait de soulignement “_”

import re def pmtaSafeJobID(s):    """    :param s: str    :return: str    Mappez une chaîne d'ID de campagne arbitraire en caractères autorisés pour l'entête PMTA X-Job.    Voir https://download.port25.com/files/UsersGuide-5.0.html#tracking-a-campaign-in-powermta-with-a-jobid    Refuser spécifiquement <sp> " ` mais autoriser la plupart des autres caractères.    """    # Note, Il faut échapper ' - [ ] et double-échapper \ - voir https://docs.python.org/3/library/re.html    disallowedChars = '[^A-Za-z0-9!#$%&\'()*+,\-./:;<=>?@\[\\\\\]^_{|}~]'    return re.sub(disallowedChars, '_', s)

Cela utilise les expressions régulières Python d'une manière spécifique. Il déclare l'ensemble des caractères refusés en utilisant l'opérateur de « complément d'ensemble » ^ plutôt que de lister tous les caractères autorisés. Cela signifie que nous capturons (et sécurisons) des caractères au-delà de l'ensemble habituel de 7 bits. Nous pouvons le montrer à l'aide de ce fragment de test :

s='' for i in range(32, 256): s += chr(i) print(pmtaSafeJobID(s))

En donnant

_!_#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^__abcde fghijklmnopqrstuvwxyz{|}~___________________________________________________________ ______________________________________________________________________

Vous pouvez voir que <SPACE>, les guillemets doubles “, et le backtick `, ainsi que tous les caractères au-delà de ~ sont mappés à un trait de soulignement.

Connectons-vous avec un expert Bird.
Découvrez toute la puissance du Bird en 30 minutes.

En soumettant, vous acceptez que Bird puisse vous contacter au sujet de nos produits et services.

Vous pouvez vous désabonner à tout moment. Consultez la Déclaration de confidentialité de Bird pour plus de détails sur le traitement des données.

Company

Newsletter

Restez à jour avec Bird grâce aux mises à jour hebdomadaires dans votre boîte de réception.

Connectons-vous avec un expert Bird.
Découvrez toute la puissance du Bird en 30 minutes.

En soumettant, vous acceptez que Bird puisse vous contacter au sujet de nos produits et services.

Vous pouvez vous désabonner à tout moment. Consultez la Déclaration de confidentialité de Bird pour plus de détails sur le traitement des données.

Company

Newsletter

Restez à jour avec Bird grâce aux mises à jour hebdomadaires dans votre boîte de réception.

Connectons-vous avec un expert Bird.
Découvrez toute la puissance du Bird en 30 minutes.

En soumettant, vous acceptez que Bird puisse vous contacter au sujet de nos produits et services.

Vous pouvez vous désabonner à tout moment. Consultez la Déclaration de confidentialité de Bird pour plus de détails sur le traitement des données.

R

Atteindre

G

Grow

M

Manage

A

Automate

Company

Newsletter

Restez à jour avec Bird grâce aux mises à jour hebdomadaires dans votre boîte de réception.