Email sending limits
Member seat invites are sent with Resend (RESEND_API_KEY, optional RESEND_FROM_EMAIL). They do not require Amazon SES production access.
SES production access
New Amazon SES accounts start in sandbox mode, which only allows sending to verified addresses. Ticket replies and other SES-backed mail that fail with "Email address is not verified" mean the AWS account still needs production access:
- Open the AWS Console in the same region as your SES setup.
- Go to Amazon SES → Account dashboard.
- Request production access, describing transactional support mail.
- Once approved, mail can go to any recipient. Keep SPF/DKIM published.
Bounce and complaint handling
Troppus suppresses hard-bounce and complaint addresses so they are not emailed again. Wire Amazon SES events like this (same region as SES):
- Create an SNS topic (for example
troppus-ses-events). - Subscribe that topic with HTTPS endpoint
https://<your-host>/api/webhooks/ses-eventsand confirm the subscription (Troppus auto-confirms when reachable). - In Amazon SES → Configuration sets, create a set (for example
troppus-outbound). - Add an event destination on that set: event types Bounce and Complaint, destination = the SNS topic above.
- Set env vars on the app host:
SES_CONFIGURATION_SET=troppus-outboundSES_EVENTS_SNS_TOPIC_ARN=arn:aws:sns:…(exact topic ARN)
Soft (temporary) bounces are not suppressed. Permanent bounces and complaints are stored in email_suppressions and blocked on future sends (ticket replies, workflow confirmations, and portal confirmations).