Email (SMTP)
Sends email using your own SMTP credentials — either during/after a call (agent-to-customer) or for system alerts (Sprio's own configuration, not per-org).
- Direction: Outbound
- Auth: your SMTP credentials (
host,port,secure,user,pass), encrypted at rest
Setup wizard
A two-step flow from Integrations → Email:
- Credentials — enter (or pick a preset for) your SMTP server, and test the connection.
- Assistants — assign which assistants can send email through this connection.
Presets
Common providers are pre-filled — Gmail (smtp.gmail.com:465, secure;
note this requires an app password, not your regular account password),
Outlook (smtp.office365.com:587), Zoho Mail (smtp.zoho.com:465,
secure), plus a fully custom option.
Security
Every SMTP connection is checked before Sprio will send through it:
- Literal private/loopback/CGNAT address ranges are blocked outright
(
127.x,10.x,192.168.x,172.16–31.x,169.254.x,100.64/10, and their IPv6 equivalents). - The hostname is also resolved and re-checked at connection time — this stops a hostname that resolves to a private address only after DNS lookup (DNS-rebinding), not just a literal IP in the config.
- TLS is enforced at
1.2minimum, with certificate validation on.
How a send actually happens
Sending is a two-step tool the assistant uses: it first confirms the
recipient's email address back to the caller (no send yet), then sends. You
control when the send actually fires via a send_timing setting:
immediate— sent live, during the call.after_call— the email content is held and sent once the call ends, via a background flush step. This is useful when you want to guarantee the full call outcome (e.g. a summary) is reflected in the email, which isn't known yet mid-call.
Optional subject/body templates let you wrap whatever the assistant writes in consistent formatting, rather than sending the AI's raw text as-is.
Troubleshooting
| Symptom | Likely cause |
|---|---|
| Connection test fails immediately | Check for a private/internal hostname or IP — these are blocked by design, not a bug |
| Gmail auth fails despite correct-looking password | Gmail requires an app password for SMTP, not your normal login password |
Email never arrives for after_call sends | Confirm the call actually completed — a deferred send only flushes once the call ends |