Features
- Added outbound email throttling to respect provider rate limits. Set
EMAIL_RATE_MAX and EMAIL_RATE_WINDOW_SEC (e.g. 200 / 100 for Larksuite) to pace delivery.
- The limiter is a context-aware token bucket wrapping the email sender, applied to both single
email_send and campaign_send. Campaign loops now block until a slot frees instead of bursting the SMTP provider.
- Leave the env vars unset to send without throttling (unchanged behavior).
Usage
EMAIL_RATE_MAX=200
EMAIL_RATE_WINDOW_SEC=100
Verification
make check
staticcheck ./...