Transparence des e-mails

Cette page explique quels e-mails PayCal envoie, comment chaque message est assemblé et livré, et comment nous vérifions la fiabilité.

Principes de messagerie

PayCal traite le courrier électronique transactionnel dans le cadre de la sécurité et de la continuité du compte, et non comme une infrastructure marketing.

  • Des modèles spécifiques au flux sont utilisés pour les chemins de vérification, de récupération, de modification de compte et de contact.
  • La composition des e-mails est centralisée pour éviter une logique de message divergente entre les contrôleurs.
  • Les échecs de livraison renvoient des résultats explicites afin que les flux d'appels puissent échouer en toute sécurité et informer clairement les utilisateurs.

Ce que nous envoyons

Flux Objectif Famille de modèles
Vérification des e-mails Confirmer la propriété lors des événements du cycle de vie du compte email-verification-*
Vérification de l'e-mail de récupération Prouver la propriété de la destination avant les actions de récupération sensibles email-recovery-email-code-*
Livraison de la clé de récupération Fournir du matériel de récupération de compte email-recovery-key-*
Opération de récupération de compte Émettre un code de vérification de récupération de compte email-account-recovery-code-*
Changement d'e-mail (ancienne/nouvelle boîte de réception) Confirmation de la double boîte de réception pour la mutation de l'e-mail du compte email-change-code-* and email-change-confirmation-*
Contacter le relais d'assistance Transférer les demandes d'assistance vers la boîte de réception d'assistance avec un contenu normalisé contact-email-*

Pipeline de livraison

PayCal utilise une pile de messagerie à deux couches :

  • PayCal\Domain\EmailGarum: workflow-level orchestration and template selection.
  • PayCal\Domain\EmailTransport: SMTP protocol transport (connect, STARTTLS, AUTH, send, close).

Template rendering is performed via PayCal\Domain\Render::template(), with both HTML and text bodies built for each flow.

Les liens de vérification sont localisés dans l'environnement à l'aide de la résolution de l'hôte de requête afin que les liens restent alignés sur le contexte de déploiement actuel.

Prise en charge de la télémétrie et de l'auditabilité des e-mails

Les soumissions d'assistance par contact incluent une télémétrie au mieux afin que l'état de la livraison puisse être surveillé sans bloquer les soumissions des utilisateurs.

  • Aggregate counters are recorded under telemetry:contact:* keys.
  • JSONL event records are appended to rotated logs via PayCal\Domain\ContactSupportTelemetry.
  • L'écriture du journal n'est pas bloquante pour préserver l'UX du formulaire de support si le stockage de télémétrie est dégradé.

Vérification et contrôles de fiabilité

  • html/tests/Unit/EmailTemplateRenderTest.php verifies all supported templates render with expected placeholder substitution.
  • html/tests/Integration/LiveEmailTemplateSweepTest.php provides opt-in live SMTP end-to-end template coverage.
  • html/tests/Integration/EmailSendTest.php provides opt-in single-message verification for SMTP, DKIM, DMARC, and Message-ID health.
# Opt-in live template sweep
cd html
PAYCAL_RUN_LIVE_EMAIL_SWEEP=1 PAYCAL_LIVE_EMAIL_RECIPIENT=you@example.com \
  ./vendor/bin/phpunit --configuration phpunit.xml tests/Integration/LiveEmailTemplateSweepTest.php

# Opt-in single email stack verification
cd html
PAYCAL_RUN_LIVE_EMAIL=1 PAYCAL_LIVE_EMAIL_RECIPIENT=you@example.com \
  ./vendor/bin/phpunit --configuration phpunit.xml tests/Integration/EmailSendTest.php

Limite de portée

Cette page documente le comportement des e-mails transactionnels et d'assistance pour les opérations du produit PayCal. Il ne documente pas l'automatisation du marketing car PayCal n'utilise pas d'entonnoir de courrier électronique marketing dans cette base de code.

Dernière mise à jour : March 21, 2026.