Files
manoel freitas 9dd6fcf409 docs: sync OpenSpec archives and propose foundation parity
Archive completed public-site and production-provider changes into main specs, remove duplicate active changes, and add complete-foundation-parity so Phase 0 staging and remaining foundation gaps block Phase 2 cleanly.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 21:55:04 -03:00

1.5 KiB

transactional-email Specification

Purpose

Define Resend as the production transactional mail transport with safe local and test defaults.

Requirements

Requirement: Production transactional email uses Resend

The system SHALL support Resend as the production mail transport via Laravel's native resend mailer (SPEC §9.1, §15.4). The Resend API key MUST be read from RESEND_API_KEY through config/services.php. Production deployments MUST set MAIL_MAILER=resend when transactional email is enabled.

Scenario: Resend mailer is configured

  • WHEN the application boots with valid configuration
  • THEN a resend mailer MUST exist in config/mail.php
  • AND config('services.resend.key') MUST resolve from RESEND_API_KEY

Scenario: Local development uses safe mail default

  • WHEN APP_ENV is local and MAIL_MAILER is unset
  • THEN the default mailer MUST be log
  • AND no outbound email MUST be sent to external providers

Scenario: Tests do not call Resend

  • WHEN the test suite runs
  • THEN MAIL_MAILER MUST be array (or tests MUST use Mail::fake)
  • AND no live HTTP request to Resend MUST occur during CI

Requirement: Global from address is configurable

The system SHALL read the global sender address and name from MAIL_FROM_ADDRESS and MAIL_FROM_NAME (SPEC §15.4).

Scenario: From address applied to outbound mail

  • WHEN the application sends mail through the configured mailer
  • THEN the message MUST use the configured from address and name