SendGrid sandbox mode: validate requests in tests without sending
Use mail_settings.sandbox_mode.enable to validate a mail send request end to end in CI without delivering anything. Covers the boolean trap, the 200-vs-202 signal, and what it does not validate.
TL;DR: Use mailsettings.sandboxmode.enable to validate a mail send request end to end in CI without delivering anything. Covers the boolean trap, the 200-vs-202 signal, and what it does not validate. The string "true" gives you: The sandbox mode enable param should be a boolean value.
The fix
- enable must be a real boolean true/false. The string "true" gives you: The sandbox mode enable param should be a boolean value.
- A valid sandbox request returns 200 OK, not the 202 you get for a real send. Assert on 200 in tests.
- Nothing is delivered, no Event Webhook events fire, no email activity is logged, and no credits are consumed. It validates form, type, and shape of the request.
- If you include a templateid, SendGrid assumes the template carries the subject and body and does not validate them. A sandbox 200 with a bad templateid can still fail in production.
- An invalid request returns the same errors array as a real send, with codes and doc links. That is the whole point: run your full payload through sandbox mode in CI.
When to use this
- This covers exactly what the title says: SendGrid sandbox mode.
- You are setting this up for the first time, or auditing an existing setup.
- You want the key gotchas in one place before you start.
When not to use this
- You are doing a different workflow with SendGrid; these steps are specific to the title above.
- You need the full reference docs; this is the short path, not the manual.
Compatibility
- Not pinned to a specific version; follows current SendGrid behavior.