E-mailtransparantie

Op deze pagina wordt uitgelegd welke e-mails PayCal verzendt, hoe elk bericht wordt samengesteld en afgeleverd en hoe we de betrouwbaarheid verifiëren.

E-mailprincipes

PayCal behandelt transactionele e-mail als onderdeel van accountveiligheid en accountcontinuïteit, niet als marketinginfrastructuur.

  • Stroomspecifieke sjablonen worden gebruikt voor verificatie, herstel, accountwijziging en contactondersteuning.
  • De samenstelling van e-mails is gecentraliseerd om uiteenlopende berichtlogica tussen controllers te voorkomen.
  • Leveringsfouten leveren expliciete resultaten op, zodat belstromen veilig kunnen mislukken en gebruikers duidelijk kunnen worden geïnformeerd.

Wat we verzenden

Stroom Doel Sjabloonfamilie
E-mailverificatie Bevestig het eigendom tijdens gebeurtenissen in de accountlevenscyclus email-verification-*
Herstel-e-mailverificatie Bewijs het eigendom van de bestemming vóór gevoelige herstelacties email-recovery-email-code-*
Levering van herstelsleutel Zorg voor materiaal voor accountherstel email-recovery-key-*
Transactie voor accountherstel Verificatiecode voor accountherstel uitgeven email-account-recovery-code-*
E-mailwijziging (oude/nieuwe inbox) Dubbele inboxbevestiging voor account-e-mailmutatie email-change-code-* and email-change-confirmation-*
Neem contact op met het ondersteuningsrelais Stuur ondersteuningsverzoeken door om de inbox met genormaliseerde inhoud te ondersteunen contact-email-*

Leveringspijplijn

PayCal gebruikt een e-mailstack met twee lagen:

  • 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.

Verificatiekoppelingen worden in de omgeving gelokaliseerd met behulp van verzoekhostresolutie, zodat koppelingen afgestemd blijven op de huidige implementatiecontext.

Ondersteuning van e-mailtelemetrie en controleerbaarheid

Contactondersteuningsinzendingen omvatten best-effort-telemetrie, zodat de status van de levering kan worden gecontroleerd zonder inzendingen van gebruikers te blokkeren.

  • Aggregate counters are recorded under telemetry:contact:* keys.
  • JSONL event records are appended to rotated logs via PayCal\Domain\ContactSupportTelemetry.
  • Het schrijven van logboeken is niet-blokkerend om de UX van ondersteuningsvorm te behouden als de telemetrie-opslag verslechtert.

Verificatie- en betrouwbaarheidscontroles

  • 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

Bereikgrens

Deze pagina documenteert transactioneel en ondersteunend e-mailgedrag voor PayCal-productbewerkingen. Het documenteert geen marketingautomatisering omdat PayCal in deze codebase geen marketing-e-mailtrechter gebruikt.

Laatst bijgewerkt: March 21, 2026.