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.phpverifies all supported templates render with expected placeholder substitution.html/tests/Integration/LiveEmailTemplateSweepTest.phpprovides opt-in live SMTP end-to-end template coverage.html/tests/Integration/EmailSendTest.phpprovides 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.