AspFox sends transactional email via Resend. All 12 email templates are already written — you configure the API key and sending address.Documentation Index
Fetch the complete documentation index at: https://docs.aspfox.com/llms.txt
Use this file to discover all available pages before exploring further.
Local development
Create a Resend account and API key
- Sign up at resend.com
- Go to API Keys → Create API Key
- Add to
.env:RESEND_API_KEY=re_…
Use the shared onboarding address
Without a verified domain, useonboarding@resend.dev as your FROM address. Resend allows all accounts to send from this address for testing.
With
onboarding@resend.dev, emails can only be sent to the email address that owns the Resend account. To send to other addresses during development, you need to verify a domain.Production
Verify your sending domain
- Resend Dashboard → Domains → Add Domain
- Enter your domain (e.g.,
yourdomain.com) - Add the DNS records Resend provides (DKIM, SPF, DMARC)
- Wait for verification (usually minutes; up to 24 hours)
Update your sending address
Email templates
AspFox includes 12 pre-built HTML templates. All use inline styles for email client compatibility.| Template | When it is sent |
|---|---|
Welcome | After email verification is complete |
EmailVerification | After registration — contains the verification link |
PasswordReset | After requesting a password reset |
MagicLink | After requesting a magic link login |
PasswordChanged | Confirmation after a successful password change |
TenantInvitation | When a user is invited to a workspace |
TrialExpiry7Day | 7 days before trial expiration (sent by TrialExpiryJob) |
TrialExpiry1Day | 1 day before trial expiration (sent by TrialExpiryJob) |
PaymentFailed | When invoice.payment_failed webhook is received |
PaymentRecovered | When payment succeeds after a past-due period |
CancellationScheduled | When subscription is set to cancel at period end |
CancellationConfirmed | When subscription is fully canceled |
src/YourProject.Infrastructure/Email/Templates/. Each extends EmailTemplateBase and implements RenderContent() to return the email body HTML.
Testing email rendering locally
To preview a template without sending it:/tmp/email-preview.html in a browser to see the rendered template. Delete the temporary code afterward.